Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
017dc989f1 | ||
|
|
b51c4e7eb3 | ||
|
|
bfcdb550bb | ||
|
|
9077429e29 | ||
|
|
19c036fe16 | ||
|
|
a5cd8f4860 | ||
|
|
054be3a6ae | ||
|
|
fd77bb01a6 | ||
|
|
286389b403 | ||
|
|
5a40a37c23 |
4
.gitignore
vendored
4
.gitignore
vendored
@@ -36,7 +36,9 @@ deps/lua/src/liblua.a
|
||||
*.exe
|
||||
*.sdf
|
||||
*.suo
|
||||
msvs/ReleasePackagingTool
|
||||
msvs/ReleasePackagingTool/bin/
|
||||
msvs/ReleasePackagingTool/obj/
|
||||
msvs/ReleasePackagingTool/packages/
|
||||
msvs/ipch
|
||||
msvs/RedisServer.opensdf
|
||||
!msvs/RedisWaInst/bin/*
|
||||
|
||||
73
RELEASENOTES.txt
Normal file
73
RELEASENOTES.txt
Normal file
@@ -0,0 +1,73 @@
|
||||
Redis for Windows - https://github.com/tporadowski/redis
|
||||
========================================================
|
||||
|
||||
This file provides information about Windows-specific changes to Redis.
|
||||
For release notes related to original Redis project - please see 00-RELEASENOTES.
|
||||
|
||||
--------------------------------------------------------
|
||||
|
||||
2020-01-26: Redis 4.0.14.2 for Windows
|
||||
https://github.com/tporadowski/redis/releases/tag/v4.0.14.2
|
||||
|
||||
This is a hotfix release of 4.0.14 branch that fixes #50 related to running in
|
||||
Sentinel mode.
|
||||
|
||||
--------------------------------------------------------
|
||||
|
||||
2020-01-15: Redis 4.0.14.1 for Windows
|
||||
https://github.com/tporadowski/redis/releases/tag/v4.0.14.1
|
||||
|
||||
This is a hotfix release of 4.0.14 branch that fixes 2 Windows-specific issues:
|
||||
|
||||
* #46 - added support for older Windows versions (prior Windows 8 and Windows Server 2012)
|
||||
* #47 - fixed problem with parsing command-line arguments.
|
||||
|
||||
--------------------------------------------------------
|
||||
|
||||
2019-08-29: Redis 4.0.14 for Windows
|
||||
https://github.com/tporadowski/redis/releases/tag/v4.0.14
|
||||
|
||||
Redis 4.0.14 for Windows is a merge of Windows-specific changes from latest (unsupported) 3.2.100 release from MSOpenTech and original Redis 4.0.14.
|
||||
|
||||
--------------------------------------------------------
|
||||
|
||||
2018-10-01: Redis for Windows 4.0.2.3 (alpha)
|
||||
|
||||
This 4.0.2.3 release is still an alpha version, but contains enhancements and fixes for:
|
||||
|
||||
* #14: decrease logging verbosity of some cluster-related messages
|
||||
* #23: ZRANK/ZREVRANK bugfix (win-port only)
|
||||
* failed unit tests (bdcf80e).
|
||||
|
||||
--------------------------------------------------------
|
||||
|
||||
2018-03-26: Redis for Windows 4.0.2.2 (alpha)
|
||||
https://github.com/tporadowski/redis/releases/tag/v4.0.2.2-alpha
|
||||
|
||||
This 4.0.2.2 release is still an alpha version, but contains a fix to issue #12
|
||||
(crash when rewriting AOF file - this issue was specific to Windows port only).
|
||||
|
||||
--------------------------------------------------------
|
||||
|
||||
2018-03-17: Redis for Windows 4.0.2.1 (alpha)
|
||||
https://github.com/tporadowski/redis/releases/tag/v4.0.2.1-alpha
|
||||
|
||||
This 4.0.2.1 release is still an alpha version, but contains a fix to issue #11,
|
||||
which was related to sending back larger amounts of data to Redis clients
|
||||
(this issue was specific to Windows port only).
|
||||
|
||||
--------------------------------------------------------
|
||||
|
||||
2017-11-22: Redis 4.0.2 for Windows (alpha)
|
||||
https://github.com/tporadowski/redis/releases/tag/v4.0.2-alpha
|
||||
|
||||
Alpha version of Redis 4.0.2 for Windows.
|
||||
|
||||
Redis 4.0.2 for Windows is a merge of Windows-specific changes from latest (unsupported) 3.2.100 release
|
||||
from MSOpenTech and Redis 4.0.2 and this alpha release consists of:
|
||||
|
||||
* all Redis 4.0.2 features except modules,
|
||||
* all executables of Redis (redis-server, redis-cli, redis-benchmark, redis-check-aof, redis-check-rdb).
|
||||
|
||||
Main difference to official Redis 4.0.2 (except no support for modules at the moment) is old version
|
||||
of jemalloc-win dependency, which is planned to be updated to the same version in beta release.
|
||||
@@ -1,5 +1,6 @@
|
||||
Copyright (c) 2006-2015, Salvatore Sanfilippo
|
||||
Copyright (c) 2006-2020, Salvatore Sanfilippo
|
||||
Modifications copyright (c) Microsoft Open Technologies, Inc.
|
||||
Modifications copyright (c) Tomasz Poradowski
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
@@ -8,4 +9,8 @@ Redistribution and use in source and binary forms, with or without modification,
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Redis nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
||||
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
||||
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Binary file not shown.
16
msvs/ReleasePackagingTool/CmdLineOptions.cs
Normal file
16
msvs/ReleasePackagingTool/CmdLineOptions.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using CommandLine;
|
||||
|
||||
namespace ReleasePackagingTool
|
||||
{
|
||||
class CmdLineOptions
|
||||
{
|
||||
[Option('n', "new-version", HelpText = "Prepares new version")]
|
||||
public string PrepareNewVersion { get; set; }
|
||||
|
||||
[Option('p', "root-path", HelpText = "Root path to project folder")]
|
||||
public string RootPath { get; set; }
|
||||
|
||||
[Option('s', "skip-package", HelpText = "When true skips preparing the package")]
|
||||
public bool SkipPackage { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,11 @@
|
||||
using System;
|
||||
using CommandLine;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.IO.Compression;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace ReleasePackagingTool
|
||||
{
|
||||
@@ -10,8 +13,13 @@ namespace ReleasePackagingTool
|
||||
{
|
||||
#region Private Fields
|
||||
|
||||
private static string rootPath;
|
||||
private static string versionReplacementText = "CurrentRedisVersion";
|
||||
private readonly string rootPath;
|
||||
private const string versionReplacementText = "CurrentRedisVersion";
|
||||
|
||||
public Program(string rootPath)
|
||||
{
|
||||
this.rootPath = rootPath;
|
||||
}
|
||||
|
||||
#endregion Private Fields
|
||||
|
||||
@@ -21,18 +29,33 @@ namespace ReleasePackagingTool
|
||||
{
|
||||
try
|
||||
{
|
||||
Program p = new Program();
|
||||
Parser.Default.ParseArguments<CmdLineOptions>(args).WithParsed(cmdLineOptions =>
|
||||
{
|
||||
string assemblyDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
|
||||
var rootPath = cmdLineOptions.RootPath ?? Path.GetFullPath(Path.Combine(assemblyDirectory, @"..\..\..\..\..\"));
|
||||
|
||||
string assemblyDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
|
||||
rootPath = Path.GetFullPath(Path.Combine(assemblyDirectory, @"..\..\..\..\..\"));
|
||||
Program p = new Program(rootPath);
|
||||
|
||||
string version;
|
||||
version = p.GetRedisVersion();
|
||||
p.UpdateNuSpecFiles(version);
|
||||
p.BuildReleasePackage(version, "x64");
|
||||
if (!string.IsNullOrWhiteSpace(cmdLineOptions.PrepareNewVersion))
|
||||
{
|
||||
p.PrepareNewVersion(cmdLineOptions.PrepareNewVersion);
|
||||
}
|
||||
|
||||
Console.Write("Release packaging complete.");
|
||||
Environment.ExitCode = 0;
|
||||
if (!cmdLineOptions.SkipPackage)
|
||||
{
|
||||
var version = p.GetRedisVersion();
|
||||
p.UpdateNuSpecFiles(version);
|
||||
p.BuildReleasePackage(version, "x64");
|
||||
|
||||
Console.Write("Release packaging complete.");
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("Creation of release package skipped.");
|
||||
}
|
||||
|
||||
Environment.ExitCode = 0;
|
||||
});
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -43,16 +66,16 @@ namespace ReleasePackagingTool
|
||||
|
||||
private void BuildReleasePackage(string version, string platform)
|
||||
{
|
||||
string releasePackageDir = Path.Combine(rootPath, @"msvs\BuildRelease\Redis-" + version + @"\");
|
||||
string releasePackageDir = GetTargetPath(@"msvs\BuildRelease\Redis-" + version + @"\");
|
||||
if (Directory.Exists(releasePackageDir) == false)
|
||||
{
|
||||
Directory.CreateDirectory(releasePackageDir);
|
||||
}
|
||||
|
||||
string releasePackagePath = Path.Combine(rootPath, releasePackageDir + "Redis-" + platform + "-" + version + ".zip");
|
||||
string releasePackagePath = GetTargetPath(releasePackageDir + "Redis-" + platform + "-" + version + ".zip");
|
||||
ForceFileErase(releasePackagePath);
|
||||
|
||||
string executablesRoot = Path.Combine(rootPath, @"msvs\" + platform + @"\Release");
|
||||
string executablesRoot = GetTargetPath(@"msvs\" + platform + @"\Release");
|
||||
List<Tuple<string /*source*/, string /*target name*/>> executableNames = new List<Tuple<string, string>>()
|
||||
{
|
||||
Tuple.Create("redis-benchmark.exe", "redis-benchmark.exe"),
|
||||
@@ -73,15 +96,18 @@ namespace ReleasePackagingTool
|
||||
{
|
||||
"EventLog.dll"
|
||||
};
|
||||
string documentsRoot = Path.Combine(rootPath, @"msvs\setups\documentation");
|
||||
List<string> docuementNames = new List<string>()
|
||||
string documentsRoot = GetTargetPath(@"msvs\setups\documentation");
|
||||
List<string> documentNames = new List<string>()
|
||||
{
|
||||
"Redis on Windows.docx",
|
||||
"Redis on Windows Release Notes.docx",
|
||||
"Windows Service Documentation.docx",
|
||||
"README.txt",
|
||||
"redis.windows.conf",
|
||||
"redis.windows-service.conf"
|
||||
};
|
||||
List<string> releaseNotes = new List<string>()
|
||||
{
|
||||
"RELEASENOTES.txt",
|
||||
"00-RELEASENOTES"
|
||||
};
|
||||
|
||||
using (ZipArchive archive = ZipFile.Open(releasePackagePath, ZipArchiveMode.Create))
|
||||
{
|
||||
@@ -97,10 +123,14 @@ namespace ReleasePackagingTool
|
||||
{
|
||||
archive.CreateEntryFromFile(Path.Combine(executablesRoot, dependencyName), dependencyName);
|
||||
}
|
||||
foreach (string documentName in docuementNames)
|
||||
foreach (string documentName in documentNames)
|
||||
{
|
||||
archive.CreateEntryFromFile(Path.Combine(documentsRoot, documentName), documentName);
|
||||
}
|
||||
foreach (string notes in releaseNotes)
|
||||
{
|
||||
archive.CreateEntryFromFile(Path.Combine(rootPath, notes), notes);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -130,9 +160,19 @@ namespace ReleasePackagingTool
|
||||
}
|
||||
}
|
||||
|
||||
private string GetTargetPath(string filePath)
|
||||
{
|
||||
if (Path.IsPathRooted(filePath))
|
||||
{
|
||||
return filePath;
|
||||
}
|
||||
|
||||
return Path.Combine(rootPath, filePath);
|
||||
}
|
||||
|
||||
private string GetRedisVersion()
|
||||
{
|
||||
TextReader tr = File.OpenText(Path.Combine(rootPath, @"src\version.h"));
|
||||
TextReader tr = File.OpenText(GetTargetPath(@"src\version.h"));
|
||||
string line = tr.ReadLine();
|
||||
int start = line.IndexOf('\"');
|
||||
int last = line.LastIndexOf('\"');
|
||||
@@ -141,15 +181,63 @@ namespace ReleasePackagingTool
|
||||
|
||||
private void UpdateNuSpecFiles(string version)
|
||||
{
|
||||
string chocTemplate = Path.Combine(rootPath, @"msvs\setups\chocolatey\template\redis.nuspec.template");
|
||||
string chocDocument = Path.Combine(rootPath, @"msvs\setups\chocolatey\redis.nuspec");
|
||||
string chocTemplate = GetTargetPath(@"msvs\setups\chocolatey\template\redis.nuspec.template");
|
||||
string chocDocument = GetTargetPath(@"msvs\setups\chocolatey\redis.nuspec");
|
||||
CreateTextFileFromTemplate(chocTemplate, chocDocument, versionReplacementText, version);
|
||||
|
||||
string nugetTemplate = Path.Combine(rootPath, @"msvs\setups\nuget\template\redis.nuspec.template");
|
||||
string nugetDocument = Path.Combine(rootPath, @"msvs\setups\nuget\redis.nuspec");
|
||||
string nugetTemplate = GetTargetPath(@"msvs\setups\nuget\template\redis.nuspec.template");
|
||||
string nugetDocument = GetTargetPath(@"msvs\setups\nuget\redis.nuspec");
|
||||
CreateTextFileFromTemplate(nugetTemplate, nugetDocument, versionReplacementText, version);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Updates some source files that keep track of current Redis for Windows version
|
||||
/// with newly provided <paramref name="prepareNewVersion"/>.
|
||||
/// </summary>
|
||||
/// <param name="prepareNewVersion">New version</param>
|
||||
private void PrepareNewVersion(string prepareNewVersion)
|
||||
{
|
||||
Console.WriteLine("Preparing new version: " + prepareNewVersion);
|
||||
|
||||
//update src/version.h
|
||||
File.WriteAllText(GetTargetPath(@"src\version.h"), $"#define REDIS_VERSION \"{prepareNewVersion}\"\r\n", System.Text.Encoding.ASCII);
|
||||
|
||||
//update msvs/RedisForWindows.rc
|
||||
var rcFilePath = GetTargetPath(@"msvs\RedisForWindows.rc");
|
||||
var rcLines = File.ReadAllLines(rcFilePath);
|
||||
var versionWithCommas = prepareNewVersion.Replace('.', ',');
|
||||
|
||||
for (int i = 0, j = rcLines.Length; i < j; i++)
|
||||
{
|
||||
var line = rcLines[i];
|
||||
|
||||
if (line.IndexOf("FILEVERSION", StringComparison.InvariantCultureIgnoreCase) > -1
|
||||
|| line.IndexOf("PRODUCTVERSION", StringComparison.InvariantCultureIgnoreCase) > -1) {
|
||||
rcLines[i] = Regex.Replace(line, @"(?<optname>FILEVERSION|PRODUCTVERSION)\s+[1-9][0-9,]+", "${optname} " + versionWithCommas);
|
||||
rcLines[i] = Regex.Replace(rcLines[i], @"VALUE ""(?<optname>FileVersion|ProductVersion)"", ""[1-9]+[0-9.]+""", "VALUE \"${optname}\", \"" + prepareNewVersion + "\"");
|
||||
}
|
||||
}
|
||||
|
||||
File.WriteAllLines(rcFilePath, rcLines, Encoding.ASCII);
|
||||
|
||||
//update Product.wxs
|
||||
var wxsPath = GetTargetPath(@"msvs\msi\RedisMsi\Product.wxs");
|
||||
var wxsLines = File.ReadAllLines(wxsPath, Encoding.UTF8);
|
||||
|
||||
for (int i = 0, j = wxsLines.Length; i < j; i++)
|
||||
{
|
||||
var line = wxsLines[i];
|
||||
|
||||
if (line.Contains("Version=\""))
|
||||
{
|
||||
wxsLines[i] = Regex.Replace(line, "\"[1-9][0-9.]+\"", $"\"{prepareNewVersion}\"");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
File.WriteAllLines(wxsPath, wxsLines, Encoding.UTF8);
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
}
|
||||
}
|
||||
@@ -55,6 +55,9 @@
|
||||
<StartupObject>ReleasePackagingTool.Program</StartupObject>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="CommandLine, Version=2.7.82.0, Culture=neutral, PublicKeyToken=5a870481e358d379, processorArchitecture=MSIL">
|
||||
<HintPath>packages\CommandLineParser.2.7.82\lib\net45\CommandLine.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.IO.Compression" />
|
||||
@@ -66,11 +69,13 @@
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="CmdLineOptions.cs" />
|
||||
<Compile Include="Program.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include=".NETFramework,Version=v4.5">
|
||||
|
||||
4
msvs/ReleasePackagingTool/packages.config
Normal file
4
msvs/ReleasePackagingTool/packages.config
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="CommandLineParser" version="2.7.82" targetFramework="net45" />
|
||||
</packages>
|
||||
@@ -10,19 +10,18 @@
|
||||
<Component Id="cmp_Redis_Windows_Conf" Guid="*">
|
||||
<File Name="redis.windows.conf" />
|
||||
</Component>
|
||||
|
||||
<Component Id="cmp_Redis_on_Windows_Release_NotesDOCX" Guid="*">
|
||||
<File Name="Redis on Windows Release Notes.docx" />
|
||||
</Component>
|
||||
|
||||
<Component Id="cmp_Redis_on_WindowsDOCX" Guid="*">
|
||||
<File Name="Redis on Windows.docx" />
|
||||
</Component>
|
||||
|
||||
<Component Id="cmp_Windows_Service_DocumentationDOCX" Guid="*">
|
||||
<File Name="Windows Service Documentation.docx" />
|
||||
</Component>
|
||||
|
||||
|
||||
</ComponentGroup>
|
||||
</Fragment>
|
||||
|
||||
<ComponentGroup Id="ReleaseNotesComponents" Directory="INSTALLFOLDER" Source="!(wix.RootFolder)">
|
||||
|
||||
<Component Id="cmp_RELEASENOTES_txt" Guid="*">
|
||||
<File Name="RELEASENOTES.txt" />
|
||||
</Component>
|
||||
<Component Id="cmp_00_RELEASENOTES" Guid="*">
|
||||
<File Name="00-RELEASENOTES" />
|
||||
</Component>
|
||||
|
||||
</ComponentGroup>
|
||||
</Fragment>
|
||||
</Wix>
|
||||
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
|
||||
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"
|
||||
xmlns:fw="http://schemas.microsoft.com/wix/FirewallExtension">
|
||||
@@ -21,7 +21,7 @@
|
||||
<Product Id="*"
|
||||
Name="Redis on Windows"
|
||||
Language="1033"
|
||||
Version="4.0.14"
|
||||
Version="4.0.14.2"
|
||||
Manufacturer="Poradowski.com"
|
||||
UpgradeCode="{05410198-7212-4FC4-B7C8-AFEFC3DA0FBC}">
|
||||
<Package InstallerVersion="200"
|
||||
@@ -55,8 +55,9 @@
|
||||
<WixVariable Id="WixUIDialogBmp" Value="Images/redis_background.jpg"/>
|
||||
<WixVariable Id="WixUIBannerBmp" Value="Images/top_banner.jpg"/>
|
||||
<WixVariable Id="DocumentationFolder" Value="..\..\setups\documentation"/>
|
||||
<WixVariable Id="RootFolder" Value="..\..\.."/>
|
||||
|
||||
<!--Link in custom actions, referencing one will pull in all-->
|
||||
<!--Link in custom actions, referencing one will pull in all-->
|
||||
<CustomActionRef Id="ca_UpdateRedisConfig"/>
|
||||
|
||||
<!--Features-->
|
||||
@@ -65,6 +66,7 @@
|
||||
<ComponentGroupRef Id="SymbolsComponents" />
|
||||
<ComponentGroupRef Id="WindowsServiceComponents" />
|
||||
<ComponentGroupRef Id="DocumentationComponents" />
|
||||
<ComponentGroupRef Id="ReleaseNotesComponents"/>
|
||||
<ComponentGroupRef Id="SetPathComponents" />
|
||||
</Feature>
|
||||
</Product>
|
||||
@@ -94,4 +96,4 @@
|
||||
</Directory>
|
||||
</Directory>
|
||||
</Fragment>
|
||||
</Wix>
|
||||
</Wix>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<metadata>
|
||||
<id>redis-64</id>
|
||||
<title>Redis 64-bit</title>
|
||||
<version>4.0.14</version>
|
||||
<version>4.0.14.2</version>
|
||||
<authors>Alexis Campailla, Enrico Giordani, Jonathan Pickett</authors>
|
||||
<owners>Microsoft Open Technologies, Inc.</owners>
|
||||
<description>A porting of Redis on Windows 64-bit.
|
||||
|
||||
19
msvs/setups/documentation/README.txt
Normal file
19
msvs/setups/documentation/README.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
Redis for Windows - https://github.com/tporadowski/redis
|
||||
========================================================
|
||||
|
||||
This version of Redis (https://redis.io/) is an unofficial port to Windows OS
|
||||
based on work contributed by Microsoft Open Technologies Inc. It is maintained
|
||||
by Tomasz Poradowski (tomasz@poradowski.com, http://www.poradowski.com/en/).
|
||||
|
||||
Contents of this package:
|
||||
- *.exe - various Redis for Windows executables compiled for x64 platfrom,
|
||||
- *.pdb - accompanying PDB files useful for debugging purposes,
|
||||
- license.txt - license information (BSD-like),
|
||||
- RELEASENOTES.txt - Windows-specific release notes,
|
||||
- 00-RELEASENOTES - changelog of original Redis project, those changes are
|
||||
ported back to this Windows version.
|
||||
|
||||
For more information - please visit https://github.com/tporadowski/redis
|
||||
|
||||
If you find this version of Redis useful and would like to support ongoing
|
||||
development - please consider sponsoring my work at https://github.com/sponsors/tporadowski
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -3,7 +3,7 @@
|
||||
<metadata>
|
||||
<id>redis-64</id>
|
||||
<title>Redis 64-bit</title>
|
||||
<version>4.0.14</version>
|
||||
<version>4.0.14.2</version>
|
||||
<authors>Alexis Campailla, Enrico Giordani, Jonathan Pickett</authors>
|
||||
<owners>Microsoft Open Technologies, Inc.</owners>
|
||||
<description>A porting of Redis on Windows 64-bit.
|
||||
|
||||
@@ -302,7 +302,8 @@ public:
|
||||
{ "known-sentinel", &fp4 }, // sentinel known-sentinel <name> <ip> <port> [runid]
|
||||
{ "announce-ip", &fp1 }, // sentinel announce-ip <ip>
|
||||
{ "announce-port", &fp1 }, // sentinel announce-port <port>
|
||||
{ "myid", &fp1 } // sentinel myid <id>
|
||||
{ "myid", &fp1 }, // sentinel myid <id>
|
||||
{ "deny-scripts-reconfig", &fp1 } // sentinel deny-scripts-reconfig [yes/no]
|
||||
};
|
||||
}
|
||||
|
||||
@@ -313,7 +314,7 @@ public:
|
||||
throw invalid_argument(err.str());
|
||||
}
|
||||
if (subCommands.find(argv[argStartIndex + 1]) == subCommands.end()) {
|
||||
err << "Could not find sentinal subcommand " << argv[argStartIndex + 1];
|
||||
err << "Could not find sentinel subcommand " << argv[argStartIndex + 1];
|
||||
throw invalid_argument(err.str());
|
||||
}
|
||||
|
||||
@@ -336,7 +337,7 @@ public:
|
||||
}
|
||||
string subcommand = tokens.at(startIndex + 1);
|
||||
if (subCommands.find(subcommand) == subCommands.end()) {
|
||||
err << "Could not find sentinal subcommand " << subcommand;
|
||||
err << "Could not find sentinel subcommand " << subcommand;
|
||||
throw invalid_argument(err.str());
|
||||
}
|
||||
|
||||
@@ -621,7 +622,8 @@ void ParseCommandLineArguments(int argc, char** argv) {
|
||||
string confFilePath;
|
||||
for (int n = (confFile ? 2 : 1); n < argc; n++) {
|
||||
if (string(argv[n]).substr(0, 2) == "--") {
|
||||
string argument = string(argv[n]).substr(2, argument.length() - 2);
|
||||
string argumentString = string(argv[n]);
|
||||
string argument = argumentString.substr(2, argumentString.length() - 2);
|
||||
transform(argument.begin(), argument.end(), argument.begin(), ::tolower);
|
||||
|
||||
// Some -- arguments are passed directly to redis.c::main()
|
||||
|
||||
@@ -1489,7 +1489,14 @@ int rewriteAppendOnlyFileBackground(void) {
|
||||
#endif
|
||||
/* Parent */
|
||||
server.stat_fork_time = ustime()-start;
|
||||
server.stat_fork_rate = (double) (zmalloc_used_memory() * 1000000 / server.stat_fork_time / (1024*1024*1024)); /* GB per second. */ WIN_PORT_FIX
|
||||
//[tporadowski/redis] issue #46: ustime() -> gettimeofday_highres() uses GetSystemTimePreciseAsFileTime when available (Windows 8, Windows Server 2012) or
|
||||
// falls back to GetSystemTimeAsFileTime which does not have such high resolution, so "stat_fork_time" may be 0 here
|
||||
#ifdef _WIN32
|
||||
if (server.stat_fork_time == 0) {
|
||||
server.stat_fork_time = 100000; //let's pretend it took 100ms (100000 microseconds)
|
||||
}
|
||||
#endif
|
||||
server.stat_fork_rate = (double)(zmalloc_used_memory() * 1000000 / server.stat_fork_time / (1024 * 1024 * 1024)); /* GB per second. */ WIN_PORT_FIX
|
||||
latencyAddSampleIfNeeded("fork",server.stat_fork_time/1000);
|
||||
if (childpid == -1) {
|
||||
closeChildInfoPipe();
|
||||
|
||||
18
src/rdb.c
18
src/rdb.c
@@ -1127,7 +1127,14 @@ int rdbSaveBackground(char *filename, rdbSaveInfo *rsi) {
|
||||
#endif
|
||||
/* Parent */
|
||||
server.stat_fork_time = ustime()-start;
|
||||
server.stat_fork_rate = (double) (zmalloc_used_memory() * 1000000 / server.stat_fork_time / (1024*1024*1024)); /* GB per second. */
|
||||
//[tporadowski/redis] issue #46: ustime() -> gettimeofday_highres() uses GetSystemTimePreciseAsFileTime when available (Windows 8, Windows Server 2012) or
|
||||
// falls back to GetSystemTimeAsFileTime which does not have such high resolution, so "stat_fork_time" may be 0 here
|
||||
#ifdef _WIN32
|
||||
if (server.stat_fork_time == 0) {
|
||||
server.stat_fork_time = 100000; //let's pretend it took 100ms (100000 microseconds)
|
||||
}
|
||||
#endif
|
||||
server.stat_fork_rate = (double)(zmalloc_used_memory() * 1000000 / server.stat_fork_time / (1024 * 1024 * 1024)); /* GB per second. */ WIN_PORT_FIX
|
||||
latencyAddSampleIfNeeded("fork",server.stat_fork_time/1000);
|
||||
if (childpid == -1) {
|
||||
closeChildInfoPipe();
|
||||
@@ -2019,7 +2026,14 @@ int rdbSaveToSlavesSockets(rdbSaveInfo *rsi) {
|
||||
closeChildInfoPipe();
|
||||
} else {
|
||||
server.stat_fork_time = ustime()-start;
|
||||
server.stat_fork_rate = (double) (zmalloc_used_memory() * 1000000 / server.stat_fork_time / (1024*1024*1024)); /* GB per second. */
|
||||
//[tporadowski/redis] issue #46: ustime() -> gettimeofday_highres() uses GetSystemTimePreciseAsFileTime when available (Windows 8, Windows Server 2012) or
|
||||
// falls back to GetSystemTimeAsFileTime which does not have such high resolution, so "stat_fork_time" may be 0 here
|
||||
#ifdef _WIN32
|
||||
if (server.stat_fork_time == 0) {
|
||||
server.stat_fork_time = 100000; //let's pretend it took 100ms (100000 microseconds)
|
||||
}
|
||||
#endif
|
||||
server.stat_fork_rate = (double)(zmalloc_used_memory() * 1000000 / server.stat_fork_time / (1024 * 1024 * 1024)); /* GB per second. */ WIN_PORT_FIX
|
||||
latencyAddSampleIfNeeded("fork",server.stat_fork_time/1000);
|
||||
|
||||
serverLog(LL_NOTICE,"Background RDB transfer started by pid %d",
|
||||
|
||||
@@ -1 +1 @@
|
||||
#define REDIS_VERSION "4.0.14"
|
||||
#define REDIS_VERSION "4.0.14.2"
|
||||
|
||||
Reference in New Issue
Block a user