diffstat: don't fail on merges
authorPatrick Mezard <pmezard@gmail.com>
Tue, 13 Jan 2009 20:28:06 +0200
changeset 7664 3cc74ee75b0d
parent 7663 b0a0eb28a933
child 7665 950484f05f16
diffstat: don't fail on merges First version by Alexander Solovyov <piranha@piranha.org.ua>
mercurial/patch.py
tests/test-notify
tests/test-notify.out
--- a/mercurial/patch.py	Sat Jan 17 15:25:20 2009 +0100
+++ b/mercurial/patch.py	Tue Jan 13 20:28:06 2009 +0200
@@ -1343,14 +1343,13 @@
         single(rev, seqno+1, fp)
 
 def diffstatdata(lines):
-    filename = None
+    filename, adds, removes = None, 0, 0
     for line in lines:
         if line.startswith('diff'):
             if filename:
                 yield (filename, adds, removes)
             # set numbers to 0 anyway when starting new file
-            adds = 0
-            removes = 0
+            adds, removes = 0, 0
             if line.startswith('diff --git'):
                 filename = gitre.search(line).group(1)
             else:
@@ -1360,7 +1359,8 @@
             adds += 1
         elif line.startswith('-') and not line.startswith('---'):
             removes += 1
-    yield (filename, adds, removes)
+    if filename: 
+        yield (filename, adds, removes)
 
 def diffstat(lines):
     output = []
--- a/tests/test-notify	Sat Jan 17 15:25:20 2009 +0100
+++ b/tests/test-notify	Tue Jan 13 20:28:06 2009 +0200
@@ -84,3 +84,17 @@
 hg --traceback --cwd b pull ../a 2>&1 | sed -e 's/\(Message-Id:\).*/\1/' \
   -e 's/changeset \([0-9a-f]*\) in .*/changeset \1/' \
   -e 's/^Date:.*/Date:/'
+
+echo % test merge
+cd a
+hg up -C 0
+echo a >> a
+hg ci -Am adda2 -d '2 0'
+hg merge
+hg ci -m merge -d '3 0'
+cd ..
+
+hg --traceback --cwd b pull ../a 2>&1 | sed -e 's/\(Message-Id:\).*/\1/' \
+  -e 's/changeset \([0-9a-f]*\) in .*/changeset \1/' \
+  -e 's/^Date:.*/Date:/'
+
--- a/tests/test-notify.out	Sat Jan 17 15:25:20 2009 +0100
+++ b/tests/test-notify.out	Tue Jan 13 20:28:06 2009 +0200
@@ -164,3 +164,56 @@
  a
 +a
 (run 'hg update' to get a working copy)
+% test merge
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+created new head
+0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+(branch merge, don't forget to commit)
+pulling from ../a
+searching for changes
+adding changesets
+adding manifests
+adding file changes
+added 2 changesets with 0 changes to 1 files
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+X-Test: foo
+Date:
+Subject: adda2
+From: test@test.com
+X-Hg-Notification: changeset 0a184ce6067f
+Message-Id:
+To: baz@test.com, foo@bar
+
+changeset 0a184ce6067f
+description:
+	adda2
+diffstat:
+
+ a |  1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diffs (6 lines):
+
+diff -r cb9a9f314b8b -r 0a184ce6067f a
+--- a/a	Thu Jan 01 00:00:00 1970 +0000
++++ b/a	Thu Jan 01 00:00:02 1970 +0000
+@@ -1,1 +1,2 @@
+ a
++a
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+X-Test: foo
+Date:
+Subject: merge
+From: test@test.com
+X-Hg-Notification: changeset 22c88b85aa27
+Message-Id:
+To: baz@test.com, foo@bar
+
+changeset 22c88b85aa27
+description:
+	merge
+(run 'hg update' to get a working copy)