changeset 3199:096f1c73cdc3

Add -D/--nodates options to hg diff/export that removes dates from diff headers and replace uses of sed in the tests with --nodates.
author Stephen Darnell <stephen@darnell.plus.com>
date Tue, 26 Sep 2006 00:05:24 +0100
parents a32f65549b9e
children 367a009c2acb
files mercurial/commands.py mercurial/mdiff.py mercurial/patch.py tests/README tests/test-diff-ignore-whitespace tests/test-diff-subdir tests/test-diffdir tests/test-git-export tests/test-help.out tests/test-merge-revert2 tests/test-remove tests/test-remove.out tests/test-up-local-change
diffstat 13 files changed, 35 insertions(+), 47 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/commands.py	Fri Sep 29 23:14:22 2006 +0200
+++ b/mercurial/commands.py	Tue Sep 26 00:05:24 2006 +0100
@@ -2852,6 +2852,7 @@
           ('p', 'show-function', None,
            _('show which function each change is in')),
           ('g', 'git', None, _('use git extended diff format')),
+          ('D', 'nodates', None, _("don't include dates in diff headers")),
           ('w', 'ignore-all-space', None,
            _('ignore white space when comparing lines')),
           ('b', 'ignore-space-change', None,
@@ -2865,6 +2866,7 @@
          [('o', 'output', '', _('print output to file with formatted name')),
           ('a', 'text', None, _('treat all files as text')),
           ('g', 'git', None, _('use git extended diff format')),
+          ('D', 'nodates', None, _("don't include dates in diff headers")),
           ('', 'switch-parent', None, _('diff against the second parent'))],
          _('hg export [-a] [-o OUTFILESPEC] REV...')),
     "debugforget|forget":
--- a/mercurial/mdiff.py	Fri Sep 29 23:14:22 2006 +0200
+++ b/mercurial/mdiff.py	Tue Sep 26 00:05:24 2006 +0100
@@ -24,6 +24,7 @@
     text treats all files as text
     showfunc enables diff -p output
     git enables the git extended patch format
+    nodates removes dates from diff headers
     ignorews ignores all whitespace changes in the diff
     ignorewsamount ignores changes in the amount of whitespace
     ignoreblanklines ignores changes whose lines are all blank'''
@@ -33,6 +34,7 @@
         'text': False,
         'showfunc': True,
         'git': False,
+        'nodates': False,
         'ignorews': False,
         'ignorewsamount': False,
         'ignoreblanklines': False,
@@ -51,7 +53,7 @@
 
 def unidiff(a, ad, b, bd, fn, r=None, opts=defaultopts):
     def datetag(date):
-        return opts.git and '\n' or '\t%s\n' % date
+        return (opts.git or opts.nodates) and '\n' or '\t%s\n' % date
 
     if not a and not b: return ""
     epoch = util.datestr((0, 0))
--- a/mercurial/patch.py	Fri Sep 29 23:14:22 2006 +0200
+++ b/mercurial/patch.py	Tue Sep 26 00:05:24 2006 +0100
@@ -291,6 +291,8 @@
         text=opts.get('text'),
         git=(opts.get('git') or
                   ui.configbool('diff', 'git', None)),
+        nodates=(opts.get('nodates') or
+                  ui.configbool('diff', 'nodates', None)),
         showfunc=(opts.get('show_function') or
                   ui.configbool('diff', 'showfunc', None)),
         ignorews=(opts.get('ignore_all_space') or
--- a/tests/README	Fri Sep 29 23:14:22 2006 +0200
+++ b/tests/README	Tue Sep 26 00:05:24 2006 +0100
@@ -26,11 +26,9 @@
 
   use commit -m "test" -u test -d "1000000 0"
 
-- diff will show the current time
+- diff and export may show the current time
 
-  use hg diff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
-                    -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/"
-  to strip dates
+  use -D/--nodates to strip the dates
 
 - You can append your own hgrc settings to the file that the environment
   variable HGRCPATH points to. This file is cleared before running a test.
--- a/tests/test-diff-ignore-whitespace	Fri Sep 29 23:14:22 2006 +0200
+++ b/tests/test-diff-ignore-whitespace	Tue Sep 26 00:05:24 2006 +0100
@@ -3,8 +3,7 @@
 # GNU diff is the reference for all of these results.
 
 hgdiff() {
-    hg diff "$@" | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
-                  -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/"
+    hg diff --nodates "$@"
 }
 
 test_added_blank_lines() {
--- a/tests/test-diff-subdir	Fri Sep 29 23:14:22 2006 +0200
+++ b/tests/test-diff-subdir	Tue Sep 26 00:05:24 2006 +0100
@@ -14,14 +14,11 @@
 echo 2 > beta/two
 
 echo EVERYTHING
-hg diff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
-              -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/"
+hg diff --nodates
 
 echo BETA ONLY
-hg diff beta | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
-                -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/"
+hg diff --nodates beta
 
 echo INSIDE BETA
 cd beta
-hg diff . | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
-                -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/"
+hg diff --nodates .
--- a/tests/test-diffdir	Fri Sep 29 23:14:22 2006 +0200
+++ b/tests/test-diffdir	Tue Sep 26 00:05:24 2006 +0100
@@ -7,12 +7,9 @@
 
 echo 123 > b
 hg add b
-hg diff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
-              -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/"
+hg diff --nodates
 
-hg diff -r tip | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
-                     -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/"
+hg diff --nodates -r tip
 
 echo foo > a
-hg diff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
-              -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/"
+hg diff --nodates
--- a/tests/test-git-export	Fri Sep 29 23:14:22 2006 +0200
+++ b/tests/test-git-export	Tue Sep 26 00:05:24 2006 +0100
@@ -8,26 +8,22 @@
 echo new > new
 hg ci -Amnew -d '0 0'
 echo '% new file'
-hg diff --git -r 0 | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
-    -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/"
+hg diff --git -r 0
 
 hg cp new copy
 hg ci -mcopy -d '0 0'
 echo '% copy'
-hg diff --git -r 1:tip | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
-    -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/"
+hg diff --git -r 1:tip
 
 hg mv copy rename
 hg ci -mrename -d '0 0'
 echo '% rename'
-hg diff --git -r 2:tip | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
-    -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/"
+hg diff --git -r 2:tip
 
 hg rm rename
 hg ci -mdelete -d '0 0'
 echo '% delete'
-hg diff --git -r 3:tip | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
-    -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/"
+hg diff --git -r 3:tip
 
 cat > src <<EOF
 1
@@ -40,17 +36,14 @@
 chmod +x src
 hg ci -munexec -d '0 0'
 echo '% chmod 644'
-hg diff --git -r 5:tip | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
-    -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/"
+hg diff --git -r 5:tip
 
 hg mv src dst
 chmod -x dst
 echo a >> dst
 hg ci -mrenamemod -d '0 0'
 echo '% rename+mod+chmod'
-hg diff --git -r 6:tip | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
-    -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/"
+hg diff --git -r 6:tip
 
 echo '% nonexistent in tip+chmod'
-hg diff --git -r 5:6 | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
-    -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/"
+hg diff --git -r 5:6
--- a/tests/test-help.out	Fri Sep 29 23:14:22 2006 +0200
+++ b/tests/test-help.out	Tue Sep 26 00:05:24 2006 +0100
@@ -179,6 +179,7 @@
  -a --text                 treat all files as text
  -p --show-function        show which function each change is in
  -g --git                  use git extended diff format
+ -D --nodates              don't include dates in diff headers
  -w --ignore-all-space     ignore white space when comparing lines
  -b --ignore-space-change  ignore changes in the amount of white space
  -B --ignore-blank-lines   ignore changes whose lines are all blank
--- a/tests/test-merge-revert2	Fri Sep 29 23:14:22 2006 +0200
+++ b/tests/test-merge-revert2	Tue Sep 26 00:05:24 2006 +0100
@@ -27,8 +27,8 @@
 hg update -C 0
 echo "changed file1 different" >> file1
 HGMERGE=merge hg update
-hg diff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" -e "s/\(<<<<<<<\) .*/\1/" \
-              -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" -e "s/\(>>>>>>>\) .*/\1/"
+#hg diff --nodates | sed -e "s/\(<<<<<<<\) .*/\1/" -e "s/\(>>>>>>>\) .*/\1/"
+hg diff --nodates | sed -e "s/\(<<<<<<<\|>>>>>>>\) .*/\1/"
 hg status
 hg id
 hg revert --no-backup --all
--- a/tests/test-remove	Fri Sep 29 23:14:22 2006 +0200
+++ b/tests/test-remove	Tue Sep 26 00:05:24 2006 +0100
@@ -13,8 +13,8 @@
 rm foo
 hg remove --after
 hg commit -m 2 -d "1000000 0"
-hg export 0
-hg export 1
+hg export --nodates 0
+hg export --nodates 1
 hg log -p -r 0
 hg log -p -r 1
 
--- a/tests/test-remove.out	Fri Sep 29 23:14:22 2006 +0200
+++ b/tests/test-remove.out	Tue Sep 26 00:05:24 2006 +0100
@@ -10,8 +10,8 @@
 1
 
 diff -r 000000000000 -r 8ba83d44753d foo
---- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/foo	Mon Jan 12 13:46:40 1970 +0000
+--- /dev/null
++++ b/foo
 @@ -0,0 +1,1 @@
 +a
 # HG changeset patch
@@ -22,8 +22,8 @@
 2
 
 diff -r 8ba83d44753d -r a1fce69c50d9 foo
---- a/foo	Mon Jan 12 13:46:40 1970 +0000
-+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
+--- a/foo
++++ /dev/null
 @@ -1,1 +0,0 @@
 -a
 changeset:   0:8ba83d44753d
--- a/tests/test-up-local-change	Fri Sep 29 23:14:22 2006 +0200
+++ b/tests/test-up-local-change	Tue Sep 26 00:05:24 2006 +0100
@@ -12,8 +12,7 @@
 cd ../r2
 hg up
 echo abc > a
-hg diff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
-              -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/"
+hg diff --nodates
 
 cd ../r1
 echo b > b
@@ -34,8 +33,7 @@
 hg --debug up
 hg parents
 hg -v history
-hg diff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
-              -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/"
+hg diff --nodates
 
 # create a second head
 cd ../r1
@@ -53,8 +51,7 @@
 hg --debug merge || echo failed
 hg --debug merge -f
 hg parents
-hg diff | sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
-              -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/"
+hg diff --nodates
 
 # test a local add
 cd ..