Sun, 06 Apr 2014 13:39:51 +0200 merge: pass merge ancestor to calculateupdates as a list
Mads Kiilerich <madski@unity3d.com> [Sun, 06 Apr 2014 13:39:51 +0200] rev 21081
merge: pass merge ancestor to calculateupdates as a list The list will so far always have one element.
Sun, 06 Apr 2014 13:39:51 +0200 merge: move ancestor selection tweaking from manifestmerge to update function
Mads Kiilerich <madski@unity3d.com> [Sun, 06 Apr 2014 13:39:51 +0200] rev 21080
merge: move ancestor selection tweaking from manifestmerge to update function - passing it through calculateupdates. This will make sure manifestmerge actually use the ancestor it is given.
Thu, 03 Oct 2013 18:01:21 +0200 match: make it more clear what _roots do and that it ends up in match()._files
Mads Kiilerich <madski@unity3d.com> [Thu, 03 Oct 2013 18:01:21 +0200] rev 21079
match: make it more clear what _roots do and that it ends up in match()._files
Tue, 15 Apr 2014 23:29:19 -0400 cat: explicitly document the supported formatter rules
Matt Harbison <matt_harbison@yahoo.com> [Tue, 15 Apr 2014 23:29:19 -0400] rev 21078
cat: explicitly document the supported formatter rules The previous documentation pointed to the export command, but even if the user recognized that instead of only reading the cat specific list of rules, not all of the export rules applied anyway (specifically %N, %n and %m). The new items are a copy/paste from export's list. These rules have existed since at least version 0.5. Note that %m gets substituted with 'None' because the commit message isn't passed to cmdutil.makefilename(). %R and %r are currently effectively the same, since no revwidth is passed, however they both work. There aren't any existing tests for these rules, so they are added to prevent future regression.
Wed, 16 Apr 2014 01:10:08 +0200 convert: backout 81cf597dafa9 and a3545c3104aa -closemap
Mads Kiilerich <madski@unity3d.com> [Wed, 16 Apr 2014 01:10:08 +0200] rev 21077
convert: backout 81cf597dafa9 and a3545c3104aa -closemap Closemap solves a very specific use case. It would be better to have a more generic solution than to have to maintain this forever. Closemap has not been released yet and removing it now will not break any backward compatibility contract. There is no test coverage for closemap but it seems like the same can be achieved with a simple and much more powerful custom extension: import hgext.convert.hg class source(hgext.convert.hg.mercurial_source): def getcommit(self, rev): c = super(source, self).getcommit(rev) if rev in [''' d643f67092ff123f6a192d52f12e7d123dae229f 9117c6561b0bd7792fa13b50d28239d51b78e51f f368a1c302d5b87506f7edb13769e591e063d7ea ''']: c.extra = c.extra.copy() c.extra['close'] = '1' return c hgext.convert.hg.mercurial_source = source
Wed, 16 Apr 2014 01:09:49 +0200 convert: backout b75a04502ced and 9616b03113ce - tagmap
Mads Kiilerich <madski@unity3d.com> [Wed, 16 Apr 2014 01:09:49 +0200] rev 21076
convert: backout b75a04502ced and 9616b03113ce - tagmap Tagmap solves a very specific use case. It would be better to have a more generic solution than to have to maintain this forever. Tagmap has not been released yet and removing it now will not break any backward compatibility contract. There is no test coverage for tagmap but it seems like the same can be achieved with a (relatively) simple and much more powerful custom extension: import hgext.convert.hg def f(tag): return tag.replace('some', 'other') class source(hgext.convert.hg.mercurial_source): def gettags(self): return dict((f(tag), node) for tag, node in in super(source, self).gettags().items()) def getfile(self, name, rev): data, flags = super(source, self).getfile(name, rev) if name == '.hgtags': data = ''.join(l[:41] + f(l[41:]) + '\n' for l in data.splitlines()) return data, flags hgext.convert.hg.mercurial_source = source
Tue, 15 Apr 2014 11:53:10 -0400 bundle2: support for push over the wire
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 15 Apr 2014 11:53:10 -0400] rev 21075
bundle2: support for push over the wire We use the new method defined in the past changeset to send a bundle2 stream and receive one in reply. The http version is missing remote output support. This will be done later using a bundle part.
Tue, 15 Apr 2014 17:53:52 -0400 httppeer: support for _calltwowaystream
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 15 Apr 2014 17:53:52 -0400] rev 21074
httppeer: support for _calltwowaystream This new method is now supported by http too.
Tue, 15 Apr 2014 17:18:35 -0400 sshpeer: add implementation of _calltwowaystream
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 15 Apr 2014 17:18:35 -0400] rev 21073
sshpeer: add implementation of _calltwowaystream This implements the call needed by bundle2. The error handling is a bit flaky right now, but bundle2 error handling in general is still flaky anyway. Bundle2 is still disabled by default, I do not expect this to be a problem.
Tue, 15 Apr 2014 17:19:46 -0400 wireproto: add a _calltwowaystream method on wirepeer
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 15 Apr 2014 17:19:46 -0400] rev 21072
wireproto: add a _calltwowaystream method on wirepeer This method will be used by bundle2 pushes. It calls a command, feeds it with a stream and receives another stream in reply. Actual implementation for ssh and http will be done in later changesets.
Tue, 15 Apr 2014 16:49:30 -0400 bundle2: return a bundle20 object from exchanges.unbundle
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 15 Apr 2014 16:49:30 -0400] rev 21071
bundle2: return a bundle20 object from exchanges.unbundle When a bundle2 is pushed we return a bundle instead of an integer. We use to return a binary stream. We now return a `bundle20` bundler to make the life of wireprotocol implementation simpler.
Tue, 15 Apr 2014 16:42:52 -0400 bundle2: feed a binary stream to `peer.unbundle`
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 15 Apr 2014 16:42:52 -0400] rev 21070
bundle2: feed a binary stream to `peer.unbundle` This input will have to travel over the wire anyway, so we feed the peer method with a simple binary stream and rely on the server side to use `readbundle` to create the python object. The test output changes because the bundle is created marginally sooner and the debug output interleaves in a different way.
Tue, 15 Apr 2014 15:20:33 -0400 bundle2: allow bundle2 for pulling over the wire
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 15 Apr 2014 15:20:33 -0400] rev 21069
bundle2: allow bundle2 for pulling over the wire This changeset makes `wireprotocol` peers advertise bundle2 capability and comply with bundle2 `getbundle` requests. Note that advertising bundle2 could make a client try to use it for push. Such pushes would fail. However, I do not expect any human being to have enabled bundle2 on their server yet.
Tue, 15 Apr 2014 11:27:55 -0400 bundle2: return a stream from exchange.getbundle
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 15 Apr 2014 11:27:55 -0400] rev 21068
bundle2: return a stream from exchange.getbundle For friendliness with the wire protocol implementation, the `exchange.getbundle` now returns a binary stream when asked for a bundle2. We detect a bundle2 request and upgrade the binary stream to an unbundler object. In the future the unbundler may gain feature to look like a binary stream, but we are not quite there yet.
Tue, 15 Apr 2014 13:57:15 -0400 bundle2: let readbundle return unbundle20
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 15 Apr 2014 13:57:15 -0400] rev 21067
bundle2: let readbundle return unbundle20 The `readbundle` function can now recognize a bundle2 stream and return the appropriate unbundler. This is required for proper bundle2 support over the wire.
Tue, 15 Apr 2014 13:54:54 -0400 bundle2: make header reading optional
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 15 Apr 2014 13:54:54 -0400] rev 21066
bundle2: make header reading optional The `readbundle` function will consume the 4 first bytes to dispatch between various unbundler. We introduce a way to inform `unbundle20` that the header has been read and it can be trusted.
Tue, 15 Apr 2014 13:42:45 -0400 bundle2: prepare readbundle to return more that one type of bundle
Pierre-Yves David <pierre-yves.david@fb.com> [Tue, 15 Apr 2014 13:42:45 -0400] rev 21065
bundle2: prepare readbundle to return more that one type of bundle We first read 4 bytes to get the `HG10` bytes then we read the compression scheme if this is `HG10`. This prepares the code for the arrival of `HG20` handling.
Mon, 14 Apr 2014 15:45:30 -0400 bundle2: add a ui argument to readbundle
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Apr 2014 15:45:30 -0400] rev 21064
bundle2: add a ui argument to readbundle The bundle2 unbundler needs a ui argument. We are now passing this information to `readbundle`.
Mon, 14 Apr 2014 15:33:50 -0400 bundle2: move `readbundle` into the `exchange` module
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Apr 2014 15:33:50 -0400] rev 21063
bundle2: move `readbundle` into the `exchange` module The `readbundle` function is going to understand the bundle2 header. We move the function to a more suitable place before making any other changes.
Mon, 14 Apr 2014 14:46:32 -0400 bundle2: use headerless HG10UN stream in changegroup
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 14 Apr 2014 14:46:32 -0400] rev 21062
bundle2: use headerless HG10UN stream in changegroup Using `readbundle` in the part handlers creates a circular import hell. We are now using a simple `HG10UN` stream with no header. Some parameters may later be introduced on the part to change parameter. Producers are updated as well.
Thu, 10 Apr 2014 10:53:43 -0700 bundle2: allow using bundle2 for push
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 10 Apr 2014 10:53:43 -0700] rev 21061
bundle2: allow using bundle2 for push We now support bundle2 for local push. The unbundle function has to detect which version of the bundle to use since the return type is different. Note that push error handling is currently nonexistent. This is one of the reasons why bundle2 is still disabled by default.
Fri, 11 Apr 2014 06:43:01 -0700 bundle2: add a "check:heads" handler
Pierre-Yves David <pierre-yves.david@fb.com> [Fri, 11 Apr 2014 06:43:01 -0700] rev 21060
bundle2: add a "check:heads" handler This part is intended to hold the same role as the `heads` argument of the unbundle function. The client fill it with the known heads at bundle time and the server will abort if its heads changed.
Sun, 13 Apr 2014 16:36:51 -0400 repoview: make the conversion from node to rev explicit while computing hidden
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 13 Apr 2014 16:36:51 -0400] rev 21059
repoview: make the conversion from node to rev explicit while computing hidden You cannot use `repo[...]` lookup here. 1. It is slow 2. It is very likely to trigger a hidden computation itself, entering an infinite loop.
Sun, 13 Apr 2014 16:39:31 -0400 repoview: drop duplicated lookup
Pierre-Yves David <pierre-yves.david@fb.com> [Sun, 13 Apr 2014 16:39:31 -0400] rev 21058
repoview: drop duplicated lookup We are already looking for local tags on the line above. We can safely drop this extra lookup.
(0) -10000 -3000 -1000 -300 -100 -50 -24 +24 +50 +100 +300 +1000 +3000 +10000 +30000 tip