updated reserve file info, fixes, html structure

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@3265 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
joostverburg 2003-12-09 19:33:48 +00:00
parent f850525a12
commit 516667fc1b
3 changed files with 166 additions and 177 deletions

View file

@ -1,138 +1,131 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>VPatch 2</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
<style type="text/css">
/*<![CDATA[*/
body
{
padding: 10px;
background-color: #F0F0F0;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10pt;
font-weight: normal;
}
{
padding: 10px;
background-color: #F0F0F0;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 13px;
font-weight: normal;
}
center
{
text-align: center;
}
p
{
font-size: 100%;
margin: 20px;
}
.center
{
text-align: center;
}
table
{
margin: auto;
text-align: left;
background-color: #FFFFFF;
}
{
margin: auto;
text-align: left;
background-color: #FFFFFF;
}
.maintable
{
border: 2px solid #376EAB;
}
{
border: 2px solid #376EAB;
}
.margin
{
margin: 20px;
}
.parameter
{
font-weight: bold;
color: #6586AC;
}
.text
{
margin: 20px;
}
.bold
{
font-weight: bold;
}
.italic
{
font-style: italic;
}
h1
{
font-size: 220%;
color: #333333;
font-weight: normal;
text-align: center;
margin: 20px;
}
h2
{
font-size: 165%;
color: #7A7272;
font-weight: normal;
}
h3
{
font-size: 140%;
font-weight: normal
color: #303030;
margin: 20px;
}
.bigheader
{
margin: 10px;
font-size: 24pt;
color: #333333;
text-align: center;
}
pre {
font-size: 100%;
margin: 20px;
}
.header
{
font-size: 14pt;
color: #7A7272;
}
.subheader
{
margin: 20px;
font-size: 11pt;
font-weight: bold;
color: #303030;
}
div
{
margin: 20px;
}
.footer
{
margin: 5px 5px 5px 5px;
text-align: right;
font-size: 8pt;
color: #909090;
}
a:link, a:visited, a:active
{
color: #294F75;
text-decoration: none;
}
{
color: #294F75;
text-decoration: none;
}
a:hover
{
color: #182634;
text-decoration: none;
}
{
color: #182634;
text-decoration: underline;
}
/*]]>*/
</style>
</head>
<body>
<div class="center">
<table width="750" class="maintable" cellspacing="0" cellpadding="0">
<tr><td>
<table cellspacing="0" cellpadding="0">
<tr>
<td><p class="bigheader">VPatch 2</p></td>
</tr>
<tr>
<td><div class="margin">
<p class="header">Introduction</p>
<p class="text">VPatch allows to create a patch file to update previous versions of
your software. The GenPat utitily generates the patch file. The plug-in can use the
patch to update a file. Using a patch, you can reduce the download size of your
updates, because only the differences between the files are included in the patch
file.</p>
<p class="header">How to use</p>
<p class="subheader">Generate the patch file</p>
<p class="text">Make sure you have the source file (original version) and the target file (version
to update to). For example, DATA.DTA (currently on user system) and DATA_20.DTA
(version 2.0 of this data file). Now call the command line tool GenPat.exe:</p>
<pre class="margin">GENPAT data.dta data_20.dta data.pat</pre>
<p class="text">Now, the patch will be generated, this will take some time.</p>
<p class="text">Using the /B=(BlockSize) parameter of the GenPat utility (put it after
the filenames), you can use a different block size. A smaller block size may result in
a smaller patch, but the generation will take more time (the default blocksize is 64).</p>
<p class="subheader">Update the file in your installer</p>
<p class="text">Use the VPatch plug-in to update a file using a patch file:</p>
<pre class="margin">vpatch::vpatchfile "pathfile.pat" "source.file" "new.file"</pre>
<p class="text">The result of the patch operating will be added to the stack and can
be one of the following texts:</p>
<td>
<h1>VPatch 2</h1>
<div>
<h2>Introduction</h2>
<p>VPatch allows to create a patch file to update previous versions of your software. The GenPat
utitily generates the patch file. The plug-in can use the patch to update a file. Using a patch,
you can reduce the download size of your updates, because only the differences between the files
are included in the patch file.</p>
<h2>How to use</h2>
<h3>Generate the patch file</h3>
<p>Make sure you have the source file (original version) and the target file (version to update
to). For example, DATA.DTA (currently on user system) and DATA_20.DTA (version 2.0 of this data
file). Now call the command line tool GenPat.exe:</p>
<pre>
GENPAT data.dta data_20.dta data.pat
</pre>
<p>Now, the patch will be generated, this will take some time.</p>
<p>Using the /B=(BlockSize) parameter of the GenPat utility (put it after the filenames), you can
use a different block size. A smaller block size may result in a smaller patch, but the generation
will take more time (the default blocksize is 64).</p>
<h3>Update the file during installation</h3>
<p>Use the VPatch plug-in to update a file using a patch file:</p>
<pre>
vpatch::vpatchfile "pathfile.pat" "source.file" "new.file"
</pre>
<p>The result of the patch operating will be added to the stack and can be one of the following
texts:</p>
<ul>
<li>OK</li>
<li>OK, new version already installed</li>
@ -140,53 +133,53 @@ be one of the following texts:</p>
<li>Patch data is invalid or corrupt</li>
<li>No suitable patches were found</li>
</ul>
<p class="text">Check <a href="example.nsi">example.nsi</a> for an example.</p>
<p class="subheader">Multiple patches in one file</p>
<p class="text">GenPat appends a patch to the file you specified. If there is already a patch
for the same orginal file in the patch file, the patch will be replaced. For example, if you want
to be able to upgrade version 1 and 2 to version 3, you can put a 1 &gt; 3 and 2 &gt; 3 patch in one
file.</p>
<p class="text">You can also put patches for different files in one patch file, for example, a
patch from file A version 1 to file A version 2 and a patch from file B version 1 to
file B version 2. Just call the plug-in multiple times with the same patch file. It
will automatically select the right patch (based on the file CRC).</p>
<p class="header">Source code</p>
<p class="subheader">NSIS plug-in (C++)</p>
<p class="text">The source of the NSIS plug-in that applies patches can be found in the
Source\Plugin folder.</p>
<p class="subheader">Patch Generator (Delphi)</p>
<p class="text">The most interesting part of VPatch, the actual patch generation algoritm,
can be found in Source\GenPat\PatchGenerator.pas. The header of that file contains a brief
explanation of the algoritm as well.</p>
<p class="subheader">User interface (Delphi)</p>
<p class="text">A user interface is included as well, which you will have to build yourself
because the GUI executable was too large to include. Besides Borland Delphi 6 or higher
(you can use the freely available Personal edition), you will also need to install the
<a href="http://www.delphi-gems.com">VirtualTreeView</a> component by Mike Lischke.</p>
<p class="header">Version history</p>
<p>Check <a href="example.nsi">example.nsi</a> for an example.</p>
<h3>Multiple patches in one file</h3>
<p>GenPat appends a patch to the file you specified. If there is already a patch for the same
orginal file in the patch file, the patch will be replaced. For example, if you want to be able to
upgrade version 1 and 2 to version 3, you can put a 1 &gt; 3 and 2 &gt; 3 patch in one file.</p>
<p>You can also put patches for different files in one patch file, for example, a patch from file A
version 1 to file A version 2 and a patch from file B version 1 to file B version 2. Just call the
plug-in multiple times with the same patch file. It will automatically select the right patch
(based on the file CRC).</p>
<h2>Source code</h2>
<h3>NSIS plug-in (C++)</h3>
<p>The source of the NSIS plug-in that applies patches can be found in the Source\Plugin
folder.</p>
<h3>Patch Generator (Delphi)</h3>
<p>The most interesting part of VPatch, the actual patch generation algoritm, can be found in
Source\GenPat\PatchGenerator.pas. The header of that file contains a brief explanation of the
algoritm as well.</p>
<h3>User interface (Delphi)</h3>
<p>A user interface is included as well, which you will have to build yourself because the GUI
executable was too large to include. Besides Borland Delphi 6 or higher (you can use the freely
available Personal edition), you will also need to install the <a href=
"http://www.delphi-gems.com">VirtualTreeView</a> component by Mike Lischke.</p>
<h2>Version history</h2>
<ul>
<li>2.0 final
<ul>
<li>Cleaned up source code for the patch generator, which is now included (this code is
written in Borland Delphi 6 and compiles with the freely available Personal edition).</li>
<li>Cleaned up source code for the patch generator, which is now included (this code is written in
Borland Delphi 6 and compiles with the freely available Personal edition).</li>
</ul>
</li>
<li>2.0 beta 2
<li>2.0 beta 2
<ul>
<li>All new algorithm used in the patch generator: much faster (up to 90%) while using
smaller block sizes (higher compression)</li>
<li>All new algorithm used in the patch generator: much faster (up to 90%) while using smaller
block sizes (higher compression)</li>
<li>Created a NSIS 2 plugin</li>
<li>Works with small files</li>
<li>Replaces existing patch in file if original file CRC is identical</li>
</ul>
</li>
</ul>
<p class="header">Credits</p>
<p class="text">Written by Koen van de Sande<br />
<h2>Credits</h2>
<p>Written by Koen van de Sande<br />
C plug-in by Edgewize<br />
New documentation and example by Joost Verburg</p>
<p class="header">License</p>
<pre class="margin">Copyright (C) 2001-2003 Koen van de Sande
<h2>License</h2>
<pre>
Copyright (C) 2001-2003 Koen van de Sande
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
@ -203,13 +196,10 @@ it freely, subject to the following restrictions:
2. Altered versions must be plainly marked as such,
and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any distribution.
</pre>
</div></td>
</tr>
</table>
</td></tr>
</pre></div>
</td>
</tr>
</table>
</div>
</body>
</html>
</html>