Augie Fackler <augie@google.com> [Wed, 05 Aug 2015 14:51:34 -0400] rev 25912
batching: migrate basic noop batching into peer.peer
"Real" batching only makes sense for wirepeers, but it greatly
simplifies the clients of peer instances if they can be ignorant to
actual batching capabilities of that peer. By moving the
not-really-batched batching code into peer.peer, all peer instances
now work with the batching API, thus simplifying users.
This leaves a couple of name forwards in wirepeer.py. Originally I had
planned to clean those up, but it kind of unclarifies other bits of
code that want to use batching, so I think it makes sense for the
names to stay exposed by wireproto. Specifically, almost nothing is
currently aware of peer (see largefiles.proto for an example), so
making them be aware of the peer module *and* the wireproto module
seems like some abstraction leakage. I *think* the right long-term fix
would actually be to make wireproto an implementation detail that
clients wouldn't need to know about, but I don't really know what that
would entail at the moment.
As far as I'm aware, no clients of batching in third-party extensions
will need updating, which is nice icing.
Laurent Charignon <lcharignon@fb.com> [Thu, 06 Aug 2015 22:54:28 -0700] rev 25911
parsers: fix memory leak in compute_phases_map_sets
PySet_Add increments the reference of the added object to the set, see:
https://hg.python.org/cpython/file/2.6/Objects/setobject.c#l379
Before this patch we were forgetting to decrement the reference count after
adding objects to the phaseset. This patch fixes the issue and makes the
reference count right so that these objects can be properly garbage collected.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Aug 2015 06:13:05 -0700] rev 25910
histedit: do not stay on a cleaned nodes on abort
There is case where nodes are neither in tmpnodes nor leaf but still get
removed. For example, if you used the "edit" action, made a commit and run
--abort. The commit you made is not tracked by histedit, yet it will likely be
cleaned up with its parent. The commit may not tracked because no replacements
computations are done in the --abort case.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Aug 2015 06:11:45 -0700] rev 25909
histedit: also update away from tmpnodes
The working copy may be on a tmpnodes, we need to update away before it is
stripped from the repository.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Aug 2015 06:08:37 -0700] rev 25908
histedit: use revset to check if we need to update during abort
The for loop is already quite more complicated than necessary and we are about
to add some logic. Instead, we use a simple revset. Revset laziness should
provide us with similar performance.
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 03 Aug 2015 05:57:45 -0700] rev 25907
histedit: remove useless 'else' clause
This 'else: pass' clause have no effect. We drop it for clarity.
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 31 Jul 2015 15:46:49 -0700] rev 25906
histedit: make cleanupnode more robust
The goal of this function is to strip content out of the repository. We do not
really care if this content is visible or cleanup node not and we should proceed
anyway. None of the internal actions are subject to this, however, a third party
extension running arbitrary commands during histedit is affected by this.