Version 0.7.5 (October 19, 2003)
Bugs fixed:
- If someone creates extra par2 files from a damaged set of source files and the damage was beyond the first 16k of the file, then the par2 set would have the same set-hash-id. QuickPar would mistakenly use the par2 files created from the damaged and undamaged source files when attempting to repair. Such repairs would of course fail. QuickPar now detects this and will report the extra par2 files as damaged.
Changes:
- Localised versions of QuickPar are now available in Dutch, French, Swedish, and Norwegian. Thanks to Maarten Trimbos, Stefan Pleiner, Thore Harald Høye, and Stéphane Simson for their work in translating the text. Anyone willing to assist in the creation of versions for other languages should let me know (email me at sourceforge - you'll find my address on the parchive home page).
Feature requests:
- Same as for 0.7 plus...
- Whilst monitoring a download, make it easier to browse the list of files without the focus jumping to show changes every time new files are found.
- Add the ability to split large source files (into sizes that are multiples of the block size) so that a separate file splitter program is not needed when posting on UseNet. Also, generate the par2 files from the original file rather than from the split files so that when QuickPar is used to verify it will automatically merge the split files.
- Add the ability to post files on UseNet such that a poster can right click a selection of files and a dialogue would be displayed that prompts only for a subject line for the post and the newsgroups to which the files should be posted. QuickPar would split and post the files, and create par2 files and post them all in the background. All operations would use preconfigured settings that the user can change via Options dialogues.
Known problems:
Version 0.7 (September 24, 2003)
Bugs fixed:
- When verifying a set of files in the same folder as a previous set with the same base filename, QuickPar would mistakenly use cached information from the previous verification and the recovery files would be ignored.
- Verifying using par1 files created by par1cmdline that list non recoverable files only in the .PAR file is now possible. Previously QuickPar required that the file lists in all par files be identical.
- After verifying files, if you click the "New" button to create more par2 files, the window would open with an incorrect size (and could not be resized).
- If you create a set of par2 files in a folder and verify it and then create a second set of par2 files in the same folder with the same filename, QuickPar will mistakenly use the information in the cache file from the first par2 set. QuickPar now deletes the existing cache file when creating new par2 files.
- When verifying par2 files, if the par2 client name was an exact multiple of 4 characters in length it would not display correctly.
Changes:
- When verifying, par1 files whose base name is different from the first par file will be automatically detected and loaded.
Feature requests:
- Include option to allow the limit for par2 files to be set to the average data file size instead of the largest data file size.
- When repairing, if there is no small .par2 file, create one.
- Automatically verify after par2 files have been created (with option to not do so).
- The ability to include non-recoverable files when creating PAR2 files.
- Allow auto-repair to be set by default.
- Add option to not cache the results of verification.
- Add option to place all of the critical packets in a par2 file that has recover blocks at the end of the file (in which case if the end of the file is damaged, verification and repair would not be possible unless copies of the critical packets can be obtained from another par2 file). Possibly include a variation to not include any critical packets at all (this would again require the critical packets to be obtained from another source).
- Add the ability to handle the same command line options that par2cmdline uses.
- Add automatic check for new versions (or reminder telling user their version is "out of date").
- Permit the selection of Folders when using the shell context menu in Windows Explorer.
- Store and use path information in the PAR2 files so that files in subfolders can be correctly found and repaired.
- Add the ability to queue PAR creation requests so that they will be processed one after another in the background.
- Ensure that only one copy of QuickPar is running so that simultaneous create/verify tasks do not compete with each other for CPU time.
- Add the ability to "pause" PAR creation, save the intermediate results to disk and resume later.
- Allow drag selection and use of the delete key in the listbox when selecting the files to create recovery data file.
- Support Unicode filenames.
- Support reading from partly unreadable files (e.g. a file on a CD with a scratch).
- Allow the selection of an alternate location to put repaired files (e.g if the originals are on CD).
- Remember the actual compute speed achieved and use that when displaying the estimate when choosing the options for a new PAR2 file. QuickPar currently makes a speed estimate on startup and uses that.
- Add an option to always store the cache files with the recovery files.
- When repairing, ensure that files are read in the reverse order from that which they were verified to maximise the chance that there data will still be in the Windows' file cache.
Known problems:
- Yenc PowerPost 2000 A&A version 10A creates .par and .par2 files with invalid MD5 Hash values. When QuickPar tries to use them to verify the associated data files, some of the data files may be reported as invalid when they are not damaged. Such files will still be reported as damaged after a repair attempt.
- If two sets of par2 files with the same base filename and placed in one folder, then QuickPar does not indicate in the file list which ones belong to which set and the total recovery block count displayed there will be incorrect. In the lower display, QuickPar does give the correct number of recovery blocks required (if there are not enough) and repair works correctly.
Version 0.6
(August 23, 2003)
Bugs fixed:
- When creating PAR2 files, if the drop down listbox to change the method
of allocation is opened and the nclosed by clicking elsewhere in the
dialogue, the "Number of Files" control can be incorrectly
enabled or disabled when it should not be.
- After clicking the Stop button whilst verifying, QuickPar would refuse
to reverify the file which was interrupted unless its timestamp was
changed.
- When creating par2 files, if you specified a target folder that does
not exist, then an error would occur. QuickPar now asks if you want
to create the folder.
Changes:
- In the create dialogue, the default width of the Filename column has
been increased.
- In the create and verify dialogues, if the widths for the columns
in the list of source files arechanged, then they will be remembered
the next time QuickPar is used.
- When creating PAR2 files, if the source files are added in non alphabetical
order, then they are sorted.
- When verifying and repairing, the name and version of the application
used to create the recovery files is displayed.
- The file list in the verification and repair dialogue has been changed
so that the files are listed in order and their details update as new
files are found when monitoring. Incomplete files and other partial
downloads will be listed as a branch of the target file in a tree layout.
- If a par2 file is damaged, then that is reported in the list of files
when verifying.
- File I/O when verifying files now uses a 32KB buffer size instead
of 256KB.
- The CRC32 checksum code has been rewritten in assembler.
- The MD5 hash code has been rewritten in assembler.
- The above three changes have significantly reduced the time to verify
files. On a test set of 75 files totalling 8000MB, FSRaid took 227 seconds,
QuickPar 0.6 took 236 seconds (using PAR1 data) and 228 seconds (using
PAR2 data), whereas QuickPar 0.5 took 585 seconds (using PAR1 data )
and 634 seconds (using PAR2 data). This brings QuickPar into line with
FSRaid in terms of verification speed.
- Some changes to the assembler code used for the innermost repair loop
have resulted in an increase in speed on certain CPUs.
- When creating par2 files, it is now possible to specify the exact
number of recovery blocks to create via an edit control with a spinner.
The scaling of the Redundancy slider has also been changed so as to
make it easy to select small quantities accurately.
- The par2 creation and par/par2 verification dialogues may now be resized.
- Cache files are now placed in a separate location (normally "%PROFILE%\Local
Settings\Application Data\QuickPar"). They are expired after 7
days.
- The title bar of the verification window now displays the number of
blocks/files required for repair along with the name of the file set.
This makes it easier to select from several instances of QuickPar on
the Windows taskbar. It also makes it a little clearer whether or not
a set needs to be repaired or not.
- You can press F5 in the verification window to force QuickPar to reverify
all files.
Known Problems:
- If you create a set of par2 files in a folder and verify it and then
create a second set of par2 files in the same folder with the same filename,
QuickPar will mistakenly use the information in the cache file from
the first par2 set. Also if you download one set of par2 files and use
them to verify, and then download a second set of par2 files that have
the same filename to the same folder then QuickPar will again use the
cache file from the first set. To work around this problem you should
either rename the par2 files or delete the cache file.
- When the command line PAR(1) client is used to create .Pxx files that
specify non-recoverable files, it records these filenames in the .PAR
file, but not in the .Pxx files. QuickPar expects the file list in all
par files for a set to be identical and will therefore treat the .Pxx
files as damaged when you open the .PAR file.
Version 0.5.1 (June 20, 2003)
Bugs fixed:
- Files that contained identical blocks of data would sometimes be missrecognised
during Verification and reported as damaged. This was most likely to
happen with very small block sizes.
- When Verifying and Repairing, filenames that included characters with
bit 7 set (i.e. most accented characters) where treated as invalid and
replaced with "_".
- If a file was missnamed so that its name was that of another target
file, then it would not be recognised as such. (NB Missnamed files that
do not have the name of another target file have always been correctly
recognised).
Changes:
- Verification and Repair using PAR 1.0 files is now possible.
- Whilst Verifying, the count of the number of Complete, Missnamed,
Damaged, and Missing files is displayed.
- Details of the results of file Verification are now stored in cache
file (with either a .qp1 or .qp2 file extension depending on whether
PAR 1.0 or PAR 2.0 files were being used). The cache file is read on
startup.
- The system menu now includes an option to allow you to change the
priority whilst processing is taking place. You may also set the default
priority from the Options dialogue.
- When creating PAR2 files you are now offered the choice of three schemes
for determining how many recovery blocks are placed in each PAR2 file:
1) Variable size (where each file contains approximately twice as many
blocks as the previous one), 2) All same size (where the recovery blocks
are distributed as evenly as possible amoungst the PAR2 files), 3) Variable
with size limit (where a number of variable sized PAR2 files are created
but where the largest PAR2 file contain exactly enough recovery data
to repair the largest data file).
- When Verifying files there is now an option of Monitor the hard disk
for new files.
- When Verifying files, every file in the folder where the PAR2/PAR1
file is located will be checked or scanned. Only files whose names are
sufficiently close to the filenames listed in the PAR2/PAR1 files will
be thoroughly scanned for good data. A file is scanned if its name is
filename.ext.NNN, filename.ext.NNN-MMM, filename.NNN.ext, filename-NNN.ext,
or filename_NNN.ext. It will also be fully scanned if its filename is
identical to the name of a target file except for substitutions made
to punctuation characters or characters with bit 7 set. Other files
are simply checked to see if they are undamaged but missnamed versions
of files. Files that are incomplete or damaged and also have the wrong
filename will not be fully scanned until you use the Add button.
- Options dialogue added to allow the configuration of PAR2 and PAR
file associations, shell integration, default process priority, and
preferred block sizes.
- When creating PAR2 files, the checkbox to set the block size to that
appropriate for UUEncoding for Usenet has been removed and replaced
with an option to restrict the block size to multiples of the preferred
block size specified in the Options dialogue.
- The checkbox that specifies one set of critical data in PAR2 files
has been removed.
- On startup QuickPar attempts to determine how fast the CPU can process
data. This speed is then used to calculate the time estimate displayed
to create PAR2 files.
- When selecting the level of redundancy for new PAR2 files, QuickPar
tells you exactly how many of the original data files the PAR2 files
could be used to repair. A minimum and maximum figure is displayed and
these may be different if the source files are not all the same size.
- Most settings (such as redundancy) are remembered for the next time
you create PAR2 files.
- The Verification and Repair dialogue now displays the sizes of files.
- When suggesting the filename to use for PAR2 files, it now trims the
suggestion back to the last "." in the filename. This avoids
creating files with names such as demo.mpg.part0.vol07+08.par2.
Known problems:
- When repairing files, all recovered files are placed in the same folder.
If the original files were in multiple folders and include some with
duplicate names, then they will be renamed so that they have a distinguishing
number added to the end of their filenames.
Version 0.4 (May 8th, 2003)
Bugs fixed:
- On Windows 95, after creating recovery files, it was not possible
to immediatly verify them.
Changes:
- When verifying files, the order in which files were processed has
been changed so that all recovery files are loaded before any of the
data files are verified.
Version 0.3.3 (March 22nd, 2003)
Bugs fixed:
- When the "Close" button was clicked after finishing the
creation of recovery volumes, you were incorrectly returned the the
Create dialogue.
- If a data file included areas with duplicate blocks, then they would
not all be correctly recognised when attempting a repair. This resulted
in the need for more recovery blocks than should be necessary.
- Drag and Drop was not working in the create dialogue.
Changes:
Known problems:
Version 0.3 (February 26th, 2003)
Bugs fixed:
- If you try to create recovery volumes for Read-Only files, they would
not be included.
- The "AutoRepair" checkbox now correctly disables when repair
is not needed.
- When using the spinner to increase the block count, QuickPar would
sometimes not let you select the largest possible block count.
Changes:
- When searching for incomplete files from a UseNet download, if the
target filename is "filename.ext" QuickPar will now automatically
match "filename_1234.ext" in addition to the existing "filename.ext.1234"
and "filename.ext.1234-5678" formats.
- When creating recovery data and reconstructing damaged data, if there
is not enough memory to hold all computed data in memory, then processing
will be done in stages with all computed data being written to disk
at the end of each stage. Additionally, when this happens, the computation
of the file hash will take place as a separate step. File hash computation
takes place at the same time as data processing if there is sufficient
memory.
- After creating recovery data, Quick Par would pause with no visible
activity whilst writing data to disk. Quick Par now indicates that this
is taking place and updates the Progress Bar to show how far it has
got.
- About button added to all the main windows.
- The Create dialogue now has a checkbox labelled "Use block size
appropriate for UUEncoding with 7000 lines per article on UseNet".
Using this sets the block size to 315,000 bytes (if possible).
- The Create dialogue now has a spinner that allows you to set exactly
the block size you want (with the exception that it must be multiple
of 4 - as required by the PAR 2.0 spec). NB When you use this spinner,
the efficiency may drop below the optimum for the resulting block count.
(i.e. you may require more recovery blocks to repair a particular file
than you would otherwise have done).
- The Create dialogue now has a checkbox labelled "Make all Recovery
files the same size". When ticked, QuickPar will allocate recovery
blocks to recovery files as evenly as possible.
- The Create dialogue now has a checkbox labelled "Don't repeat
critical data in recovery files". When ticked, QuickPar will only
put one copy of the information that describes the files being protected
in each recovery file. This will result in a smaller recovery file,
but at a greater potential risk that the recovery file will be unuseable
if that data cannot be read from another recovery file.
- The Create dialogue now has a spinner that lets you adjust the number
of recovery files that will be created.
Known problems:
- When repairing files, all recovered files are placed in the same folder.
If the original files were in multiple folders and include some with
duplicate names, then they will be renamed so that they have a distinguishing
number added to the end of their filenames.
Version 0.2 (February 11th, 2003)
Bugs fixed:
- A bug that prevented the creation of PAR2 files on Windows 98 has
been corrected.
- A PAR2 file which included files that have the same name would cause
Quick Par to crash when attempting to verify them.
- When using the Windows Explorer context menu to create a PAR2 file
with a large number of files, the details of only a limited number would
get passed to Quick Par.
Changes:
- Quick Par will now "beep" when it finishes an operation.
- If PAR2 creation is cancelled, then any partly created PAR2 files
will be deleted.
- If a repair is cancelled, then any files that have been created will
be deleted.
- When PAR2 creation is cancelled, you are now returned to the previous
dialogue instead of exiting. This allows you to adjust the settings
and then restart the creation.
- During PAR2 creation, Quick Par now updates the progress bar whilst
it is computing the Reed Solomon matrix. This will only be noticed when
using high block counts.
- Overlapped I/O is used if possible when creating and verifying. It
is not yet used during repair.
- It is now possible to drag and drop files from Windows Explorer into
the PAR2 create window.
- If the base name entered for the PAR2 files ends with a period, then
that period will be removed.
- Quick Par now operates with lowered priority so that other applications
will not be slowed down.
- When repairing, Quick Par now displays the estimated time to finish.
- There is now an "AutoRepair" button.
- After verifying files, if repair is needed and enough recovery blocks
are available, Quick Par will tell you how many recovery blocks it will
actually use for the repair.
- Memory consumption for the Reed Solomon matrices used for PAR creation
and repair has been halved. This is only of real significance for high
block counts.
Known problems:
- When repairing files, all recovered files are placed in the same folder.
If the original files were in multiple folders and include some with
duplicate names, then they will be renamed so that they have a distinguishing
number added to the end of their filenames.
Version 0.1 (February 5th, 2003)
This is the initial release of Quick Par.
- Quick Par does not support the PAR 1.0 specification.
- This version has been tested on Windows XP Professional, and Windows
NT 4.0. It has NOT been tested on Windows 95, Windows 98, Windows ME,
Windows 2000, or Windows XP Home.
- When creating PAR files, all computed recovery blocks are buffered
in memory until finished. If you create 10% recovery data for an 800MB
file, Quick Par will use 80MB of memory. This might cause disk-thrashing
on computers with limited amounts of memory.
- You cannot directly control the number of PAR2 files created. Each
PAR2 file will contain 2^n recovery blocks (except the last). The total
number of PAR2 files created is log2(number of recovery blocks).
- Quick Par will place multiple copies of critical information in each
PAR2 file. This allows a PAR2 file to be useable when damaged.
- When verifying files, Quick Par does not currently cache the results
of a scan. When reverifying, all files will be rescanned.
- Quick Par won't let you set an exact block size. Instead you have
to specify the number of blocks and it will calculate the best block
size. The calculated block size will be the smallest size the results
in the specified number of blocks. This achieves the highest level of
efficiency by minimizing any padding that may occur during block allocation.
- Quick Par does not store path information for the files that are being
protected and will ignore any path information in a PAR2 file when verifying.
- When verifying, Quick Par will check any files whose filenames start
the same as a target file. If a target file has been renamed, you have
to manually tell Quick Par to scan it for data.
- This is a beta release which requires more work. It does not contain
full error checking code so bugs may lead to unexpected crashes.
|