# HG changeset patch # User Matt Mackall # Date 1371669423 18000 # Node ID ec896f9e889466d90a9eb62363e68ededb1b8885 # Parent ad0d8158cefd2fcc257f706721709a357f432b1f changegroup: fix fastpath during commit Change 627cd7842e5d dropped the 'revset' variable which kept track of which changesets were being bundled. Instead, it used "not in commonset" to decide which changesets were outgoing.. which ran into trouble when a commit was in progress. diff -r ad0d8158cefd -r ec896f9e8894 mercurial/changegroup.py --- a/mercurial/changegroup.py Wed Jun 05 22:41:53 2013 +0200 +++ b/mercurial/changegroup.py Wed Jun 19 14:17:03 2013 -0500 @@ -364,10 +364,11 @@ if fastpathlinkrev: ln, llr = filerevlog.node, filerevlog.linkrev + needed = set(cl.rev(x) for x in clnodes) def genfilenodes(): for r in filerevlog: linkrev = llr(r) - if linkrev not in commonrevs: + if linkrev in needed: yield filerevlog.node(r), cl.node(linkrev) fnodes[fname] = dict(genfilenodes())