+2006-01-29 Darin Adler <darin@apple.com>
+
+ * Scripts/svn-apply: Added comments about things we should do to improve.
+ * Scripts/svn-create-patch: Ditto.
+ * Scripts/svn-unapply: Ditto.
+
2006-01-28 Darin Adler <darin@apple.com>
* DumpRenderTree/DumpRenderTree.m: (dump): Dump the image if it's not
#
# Handles added files (does a svn add).
# Handles removed files (does a svn rm).
-# Has mode where it will roll back to svn version numbers in the patch file so svn can do a 3-way merge.
+# Has mode where it will roll back to svn version numbers in the patch file so svn
+# can do a 3-way merge.
+# Paths from Index: lines are used rather than the paths on the patch lines, which
+# makes patches generated by "cvs diff" work (increasingly unimportant since we
+# use Subversion now).
#
# Missing features:
#
-# Handle binary files.
-# When doing a removal, doesn't check that old file matches what's being removed.
+# Handle property changes.
+# Handle binary files (requires patches made by svn-create-patch).
+# Handle file moves (requires patches made by svn-create-patch).
+# When doing a removal, check that old file matches what's being removed.
# Notice a patch that's being applied at the "wrong level" and make it work anyway.
+# Do a smart merge on ChangeLog files instead of just doing a normal patch.
+# Do a dry run on the whole patch and don't do anything if part of the patch is
+# going to fail (probably too strict unless we do the ChangeLog thing).
use strict;
use Cwd;
# Differences from standard "svn diff":
#
+# Uses the real diff, not svn's built-in diff.
# Always passes "-p" to diff so it will try to include function names.
-# Other command line options are not supported.
#
-# Missing feature:
+# Missing features:
#
+# Sort the diffs, since svn emits them in a seemingly-random order.
# Handle binary files (some text form of the binary file).
# Handle moved files.
my ($dir, $base) = getDirAndBase($path);
my $errors = "";
chdir $dir or die;
- open DIFF, "svn diff --diff-cmd diff -x -uNp '$base' |" or die;
+ open DIFF, "svn diff --diff-cmd diff -x -uNp '$base' |" or die;
my $indexPath;
while (<DIFF>) {
if (/^Index: (.*)/) {
# "patch" script for Web Kit Open Source Project, used to apply patches.
-# Differences from invoking "patch -p0":
+# Differences from invoking "patch -p0 -R":
#
-# Paths from Index: lines are used rather than the paths on the patch lines, which makes
-# patches generated by "cvs diff" work.
-# Handles added files (does a cvs add).
-# Handles removed files (does a cvs rm).
+# Handles added files (does a svn rm).
+# Handles removed files (does a svn add).
+# Paths from Index: lines are used rather than the paths on the patch lines, which
+# makes patches generated by "cvs diff" work (increasingly unimportant since we
+# use Subversion now).
#
# Missing features:
#
-# Use CVS version numbers in the patch file and do a 3-way merge.
-# Handle binary files.
-# When reversing an addition, doesn't check that file matches what's being removed.
+# Handle property changes.
+# Handle binary files (requires patches made by svn-create-patch).
+# Handle file moves (requires patches made by svn-create-patch).
+# Use version numbers in the patch file and do a 3-way merge.
+# When reversing an addition, check that the file matches what's being removed.
+# Notice a patch that's being unapplied at the "wrong level" and make it work anyway.
+# Do a smart merge on ChangeLog files instead of just doing a normal patch.
+# Do a dry run on the whole patch and don't do anything if part of the patch is
+# going to fail (probably too strict unless we do the ChangeLog thing).
use strict;
use Cwd;