| Issue 21: | Recursive directory diff support | |
| 8 people starred this issue and may be notified of changes. | Back to list |
This is a frequently-requested feature. In particular, it's an RTPatch feature. This will probably require some Unix/Win-specific code. |
|
,
Feb 05, 2007
gzip 1.3.5 seems to handle this well on both POSIX and Windows platforms, and is of course GPL2 licensed. I'm not sure how much gnuwin32 replaces the baseline Gnu code, though, or how modularized it really is. My C skills are caked with 10 years of rust. Just thought I'd throw it out as an example, anwyay. |
|
,
Feb 08, 2007
It's not exactly the same, but SVN 125 (after release 3.0o) has a new environment variable for use with tar: export XDELTA XDELTA="-s source-1.tar" TAR="tar --use-compress-program=xdelta3" $TAR -cvf source-1-source2.tar.vcdiff source-2/ ... $TAR -xvf source-1-source2.tar.vcdiff |
|
,
Jun 18, 2007
Attached is the perl script I use to achieve this functionality. If anyone is interested I also have a version that works with xdelta 1.1.x. |
|
,
Aug 04, 2007
Josh, this is pretty cool software. I really could use the directory diff though as I am adding directories and files in them from version to version. That, of course, causes my tar/zip files to be pretty different, and I usually only save about fifteen megs in a 260mb file. Anyway, thanks for the program, and I'd be happy to beta test on the Windows side if you choose to get this directory diff thing going. |
|
,
Dec 14, 2007
(No comment was entered for this change.)
Labels: -Type-Defect Type-Enhancement Milestone-Release3.0
|
|
,
Dec 14, 2007
(No comment was entered for this change.)
Labels: -Milestone-Release3.0
|
|
,
Jul 04, 2008
I'm not sure I understand the tar method fully. Can someone give a full example, let's say, comparing D:\Dir1 against D:\Dir2 and then also how to apply that diff as well? Both xdelta and tar need to be in the temp dir. I would like to make this part of an update installation. Thanks |
|
,
Feb 24, 2009
Attached is a new version of xdelta-dir. It fixes an issue with recursive directory handling. |
|
,
Mar 16, 2009
That's my modifications made to the script, since it's in GPL I'm posting here for anyone to see and use, if they find it useful... I've fixed some hangups if one dir was present in one file but not in the other, and also added a file named DELETED in patchdir, from whom I read removed files and dir, also added some checkups and output of xdelta-dir to a log (named patcher.log) via TeeOutPut.pm (search google for that) |
|
,
Apr 10, 2009
I have made a handy Java translation of the Perl script above that anyone can use in their Java programs. It is standalone and only requires the use to have xdelta3.exe in the working directory or to set the system property xdelta3. In a DOS batch do this to create a recursive delta of an entire directory: SET xdelta3=somefilelocation (maybe c:\delta.exe) java XDeltaHelper [-v] delta olddir newdir patchdir if the user wants a manifest of all the folders and files in the newdir that were not found in the olddir use -m or --manifest followed by a filename. This must be the second paramater SET xdelta3=c:\xdelta3.exe) java XDeltaHelper [-v] [-m manifest.txt] delta olddir newdir patchdir Applying a patch is equally easy. SET xdelta3=c:\xdelta3.exe java XDeltaHelper [-v] patch patchdir olddir newdir It is also possible to use this as a convenient wrapper for just a plain old xdelta of a file SET xdelta3=c:\xdelta3.exe java XDeltaHelper [-v] delta oldfile newfile patchfile or to make a new file from a patch and an old file SET xdelta3=c:\xdelta3.exe java XDeltaHelper [-v] patch patchfile oldfile newfile *** To APPLY A PATCH To AN EXISTING OLD FILE **** This will create the newfile and then replace the old with the new. SET xdelta3=c:\xdelta3.exe java XDeltaHelper --applypatch [-v] patchfile oldfile Happy Coding |
|
,
Apr 18, 2009
Hi, I created a utility that creates patch according to two directories... I'm using JojoDiff but I could easily use yours too. Feel free to contact me if you're interested at xmarot at gmail dot com |
|
|
|