[PATCH 3 of 5 phases] revlog: make addgroup returns a list of node contained in the added source
Matt Mackall
mpm at selenic.com
Sun Jan 15 01:55:43 UTC 2012
On Fri, 2012-01-13 at 02:42 +0100, Pierre-Yves David wrote:
> # 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.
Not sure about this. It means hooks get fired on changesets we already
have. Queued for now.
> 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
--
Mathematics is the supreme nostalgia of our time.
More information about the Mercurial-devel
mailing list