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, German, Norwegian, Portugese, Spanish, and Swedish. Thanks to Etraman, Stefan Pleiner, Thore Harald Høye, Stéphane Simson, José Mira, Imanol Espasa, and Fabian Siegel 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.
  • Add the ability to queue jobs to take place at a later time.
  • Add the option to delete incomplete/damaged versions of files after a repair has been completed.
  • Add a context menu to the file list in the verification with to allow files to be deleted, renamed etc.
  • Use a different icon in the verification window to distinguish between files which are missing/damaged but all blocks are available from those where only some of the blocks are available.
  • Maximise option.
  • Automatically adjust the width of columns.
  • When verifying, add option to have the list only show whether files are complete or not (and not list what has been found for incomplete files).
  • Add partial repair where possible so that file renaming and block merging can be done.
  • Allow multiple par2 sets in the same folder to be monitored simultaneously.
  • Create a text report from the verification window detailing what has been found. Allow the report to be copied to the clipboard so that it can be pasted into a message for UseNet requesting more par2 blocks or fills.
  • Minimise to system tray.
  • Add the ability to open and use SFV, MD5, and CRC files for legacy verification support.
  • When creating par2 files, if the suggested base filename is less than 4 characters, suggest the folder name instead. Additionally if the suggested base filename ends with any non alphanumeric characters, they should be stripped.

Known problems:

  • Unchanged.

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. This problem also occurs if you use the Add button to add par2 files that do not belong to the set.

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:

  • None

Known problems:

  • Same as for 0.3.

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.
Copyright © 2003 Peter B. Clements. All Rights Reserved.