changeset 18677:539210ed2069

blackbox: only show new heads on incoming The blackbox was logging every head after every incoming group. Now we only log the heads that have changed. Added a test. Moved the hooks test to the bottom of the file since the hooks interfer with the tests after it.
author Durham Goode <durham@fb.com>
date Wed, 13 Feb 2013 11:07:01 -0800
parents 1506eb487ddd
children 423eee0b0b14
files mercurial/localrepo.py tests/test-blackbox.t
diffstat 2 files changed, 35 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/localrepo.py	Wed Feb 13 10:54:52 2013 -0800
+++ b/mercurial/localrepo.py	Wed Feb 13 11:07:01 2013 -0800
@@ -2400,11 +2400,11 @@
                         self.hook("incoming", node=hex(n), source=srctype,
                                   url=url)
 
-                    heads = self.heads()
+                    newheads = [h for h in self.heads() if h not in oldheads]
                     self.ui.log("incoming",
                                 _("%s incoming changes - new heads: %s\n"),
                                 len(added),
-                                ', '.join([hex(c[:6]) for c in heads]))
+                                ', '.join([hex(c[:6]) for c in newheads]))
                 self._afterlock(runhooks)
 
         finally:
--- a/tests/test-blackbox.t	Wed Feb 13 10:54:52 2013 -0800
+++ b/tests/test-blackbox.t	Wed Feb 13 11:07:01 2013 -0800
@@ -28,6 +28,38 @@
   1970/01/01 00:00:00 bob> add a
   1970/01/01 00:00:00 bob> add exited 0 after * seconds (glob)
 
+incoming change tracking
+
+create two heads to verify that we only see one change in the log later
+  $ hg commit -ma
+  $ hg up null
+  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  $ echo b > b
+  $ hg commit -Amb
+  adding b
+  created new head
+
+clone, commit, pull
+  $ hg clone . ../blackboxtest2
+  updating to branch default
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ echo c > c
+  $ hg commit -Amc
+  adding c
+  $ cd ../blackboxtest2
+  $ hg pull
+  pulling from $TESTTMP/blackboxtest
+  searching for changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 1 changesets with 1 changes to 1 files
+  (run 'hg update' to get a working copy)
+  $ hg blackbox -l 3
+  1970/01/01 00:00:00 bob> pull
+  1970/01/01 00:00:00 bob> 1 incoming changes - new heads: d02f48003e62 (glob)
+  1970/01/01 00:00:00 bob> pull exited None after * seconds (glob)
+
 extension and python hooks - use the eol extension for a pythonhook
 
   $ echo '[extensions]' >> .hg/hgrc
@@ -36,32 +68,12 @@
   $ echo 'update = echo hooked' >> .hg/hgrc
   $ hg update
   hooked
-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg blackbox -l 4
   1970/01/01 00:00:00 bob> update
   1970/01/01 00:00:00 bob> pythonhook-preupdate: hgext.eol.preupdate finished in * seconds (glob)
   1970/01/01 00:00:00 bob> exthook-update: echo hooked finished in * seconds (glob)
   1970/01/01 00:00:00 bob> update exited False after * seconds (glob)
 
-incoming change tracking
-
-  $ hg clone . ../blackboxtest2
-  updating to branch default
-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ hg commit -ma
-  $ cd ../blackboxtest2
-  $ hg pull
-  pulling from $TESTTMP/blackboxtest
-  requesting all changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 1 changesets with 1 changes to 1 files
-  (run 'hg update' to get a working copy)
-  $ hg blackbox -l 3
-  1970/01/01 00:00:00 bob> pull
-  1970/01/01 00:00:00 bob> 1 incoming changes - new heads: cb9a9f314b8b (glob)
-  1970/01/01 00:00:00 bob> pull exited None after * seconds (glob)
-
 cleanup
   $ cd ..