[PATCH 3 of 5 phases] revlog: make addgroup returns a list of node contained in the added source

Pierre-Yves David pierre-yves.david at ens-lyon.org
Thu Jan 12 19:42:05 CST 2012


# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at ens-lyon.org>
# Date 1326414543 -3600
# Node ID 209445e13389063ea1de9b9001ab9f9d7e562046
# Parent  2a1a788089995deb55413d2a19e750851ac80237
revlog: make addgroup returns a list of node contained in the added source

This list will contains any node see in the source, not only the added one.
This is intended to allow phase to be move according what was pushed by client
not only what was added.

diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -2017,8 +2017,8 @@
             source.callback = pr
 
             source.changelogheader()
-            if (cl.addgroup(source, csmap, trp) is None
-                and not emptyok):
+            srccontent = cl.addgroup(source, csmap, trp)
+            if not (srccontent or emptyok):
                 raise util.Abort(_("received changelog group is empty"))
             clend = len(cl)
             changesets = clend - clstart
@@ -2066,7 +2066,7 @@
                 pr()
                 fl = self.file(f)
                 o = len(fl)
-                if fl.addgroup(source, revmap, trp) is None:
+                if not fl.addgroup(source, revmap, trp):
                     raise util.Abort(_("received file revlog group is empty"))
                 revisions += len(fl) - o
                 files += 1
diff --git a/mercurial/revlog.py b/mercurial/revlog.py
--- a/mercurial/revlog.py
+++ b/mercurial/revlog.py
@@ -1131,6 +1131,7 @@
         """
 
         # track the base of the current delta log
+        content = []
         node = None
 
         r = len(self)
@@ -1161,6 +1162,8 @@
                 deltabase = chunkdata['deltabase']
                 delta = chunkdata['delta']
 
+                content.append(node)
+
                 link = linkmapper(cs)
                 if node in self.nodemap:
                     # this can happen if two branches make the same change
@@ -1190,7 +1193,7 @@
                 dfh.close()
             ifh.close()
 
-        return node
+        return content
 
     def strip(self, minlink, transaction):
         """truncate the revlog on the first revision with a linkrev >= minlink


More information about the Mercurial-devel mailing list