Sat, 27 Apr 2013 23:19:52 +0200 largefiles: make cat on standins do something
Mads Kiilerich <madski@unity3d.com> [Sat, 27 Apr 2013 23:19:52 +0200] rev 21087
largefiles: make cat on standins do something cat of a standin would silently fail. The use of standins is mostly an implementation detail, but it is already a bit leaking. Being able to see the content of standins might be convenient for debugging.
Sun, 13 Apr 2014 18:45:43 +0200 largefiles: remove confusing handling of .bad return value - it is void
Mads Kiilerich <madski@unity3d.com> [Sun, 13 Apr 2014 18:45:43 +0200] rev 21086
largefiles: remove confusing handling of .bad return value - it is void
Thu, 03 Oct 2013 18:01:21 +0200 largefiles: fix profile of unused largefilesdirstate._ignore
Mads Kiilerich <madski@unity3d.com> [Thu, 03 Oct 2013 18:01:21 +0200] rev 21085
largefiles: fix profile of unused largefilesdirstate._ignore
Tue, 08 Apr 2014 00:48:36 +0200 largefiles: import whole modules instead of importing parts of them
Mads Kiilerich <madski@unity3d.com> [Tue, 08 Apr 2014 00:48:36 +0200] rev 21084
largefiles: import whole modules instead of importing parts of them Be more friendly to demandimport.
Thu, 18 Apr 2013 18:56:18 +0200 largefiles: update should only create a .orig backup of a largefile once
Mads Kiilerich <madski@unity3d.com> [Thu, 18 Apr 2013 18:56:18 +0200] rev 21083
largefiles: update should only create a .orig backup of a largefile once A .orig of a standin after the update do that a .orig of the actual largefile is created. The .orig standin was however never removed again and the largefile .orig was thus overwritten again and again. The fix: remove the standin .orig when it is used.
Mon, 07 Apr 2014 02:12:28 +0200 merge: let manifestmerge emit 'keep' actions when keeping wd version
Mads Kiilerich <madski@unity3d.com> [Mon, 07 Apr 2014 02:12:28 +0200] rev 21082
merge: let manifestmerge emit 'keep' actions when keeping wd version Such a 'keep' action will later be the preferred (non)action when there is multiple ancestors. It is thus very convenient to have it explicitly. The extra actions will only be emitted in the case where the local file has changed since the ancestor but the other hasn't. That is the symmetrical operation to a 'get' action. This will create more action tuples that not really serve a purpose. The number of actions will however have the number of changed files as upper bound and it should thus not increase the memory/cpu use significantly.
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`.
(0) -10000 -3000 -1000 -300 -100 -50 -24 +24 +50 +100 +300 +1000 +3000 +10000 +30000 tip