Wed, 11 Jul 2012 11:52:42 +0200 debugrevlog: handle numrevs == numfull case (issue3537)
Patrick Mezard <patrick@mezard.eu> [Wed, 11 Jul 2012 11:52:42 +0200] rev 17188
debugrevlog: handle numrevs == numfull case (issue3537) Instead of tracing back with a ZeroDivisionError.
Tue, 10 Jul 2012 09:11:53 -0700 templatekw/help: document the {parents} keyword
epriestley <hg@yghe.net> [Tue, 10 Jul 2012 09:11:53 -0700] rev 17187
templatekw/help: document the {parents} keyword The {parents} keyword does not appear in the generated documentation for templates because it is added by `changeset_templater` (and this is because its behavior depends on `ui`, so it can't be defined as a normal template keyword; see comments in `changeset_templater._show()`). Add it to the documentation synthetically by creating a stub documentation function. Test plan: built the docs and examined the man page to verify that this keyword is now documented. I'm not sure how to test the i18n extraction part, but assume it will just work given that this patch doesn't do anything too crazy.
Sat, 07 Jul 2012 00:47:55 -0400 revset: add destination() predicate
Matt Harbison <matt_harbison@yahoo.com> [Sat, 07 Jul 2012 00:47:55 -0400] rev 17186
revset: add destination() predicate This predicate is used to find csets that were created because of a graft, transplant or rebase --keep. An optional revset can be supplied, in which case the result will be limited to those copies which specified one of the revs as the source for the command. hg log -r destination() # csets copied from anywhere hg log -r destination(branch(default)) # all csets copied from default hg log -r origin(x) or destination(origin(x)) # all instances of x This predicate will follow a cset through different types of copies. Given a repo with a cset 'S' that is grafted to create G(S), which itself is transplanted to become T(G(S)): o-S / o-o-G(S) \ o-T(G(S)) hg log -r destination( S ) # { G(S), T(G(S)) } hg log -r destination( G(S) ) # { T(G(S)) } The implementation differences between the three different copy commands (see the origin() predicate) are not intentionally exposed, however if the transplant was a graft instead: hg log -r destination( G(S) ) # {} because the 'extra' field in G(G(S)) is S, not G(S). The implementation cannot correct this by following sources before G(S) and then select the csets that reference those sources because the cset provided to the predicate would also end up selected. If there were more than two copies, sources of the argument would also get selected. Note that the convert extension does not currently update the 'extra' map in its destination csets, and therefore copies made prior to the convert will be missing from the resulting set. Instead of the loop over 'subset', the following almost works, but does not select a transplant of a transplant. That is, 'destination(S)' will only select T(S). dests = set([r for r in subset if _getrevsource(repo, r) in args])
Sat, 07 Jul 2012 00:47:30 -0400 revset: add origin() predicate
Matt Harbison <matt_harbison@yahoo.com> [Sat, 07 Jul 2012 00:47:30 -0400] rev 17185
revset: add origin() predicate This predicate is used to find the original source of csets created by a graft, transplant or rebase --keep. If a copied cset is itself copied, only the source of the original copy is selected. hg log -r origin() # all src csets, anywhere hg log -r origin(branch(default)) # all srcs of copies on default By following through different types of copy commands and only selecting the original cset, the implementation differences between the copy commands are hidden. (A graft of a graft preserves the original source in its 'extra' map, while transplant and rebase use the immediate source specified for the command). Given a repo with a cset S that is grafted to create G(S), which itself is grafted to become G(G(S)) o-S / o-o-G(S) \ o-G(G(S)) hg log -r origin( G(S) ) # { S } hg log -r origin( G(G(S)) ) # { S }, NOT { G(S) } Even if the last graft were a transplant hg log -r origin( T(G(S)) ) # { S } A rebase without --keep essentially strips the source, so providing the cset that results to this predicate will yield an empty set. Note that the convert extension does not currently update the 'extra' map in its destination csets, and therefore copies made prior to the convert will be unable to find their source.
Mon, 16 Jul 2012 15:50:19 +0200 convert: remove unused newnames variable in filemap
Patrick Mezard <patrick@mezard.eu> [Mon, 16 Jul 2012 15:50:19 +0200] rev 17184
convert: remove unused newnames variable in filemap
Thu, 12 Jul 2012 03:03:19 +0200 push: fix bug in detection of remote obsolete support
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Thu, 12 Jul 2012 03:03:19 +0200] rev 17183
push: fix bug in detection of remote obsolete support Current code check obsolete availability in local repo.
Wed, 11 Jul 2012 18:22:07 +0200 incoming/outgoing: handle --graph in core
Patrick Mezard <patrick@mezard.eu> [Wed, 11 Jul 2012 18:22:07 +0200] rev 17182
incoming/outgoing: handle --graph in core
Sat, 14 Jul 2012 19:09:22 +0200 log: support --graph without graphlog extension
Patrick Mezard <patrick@mezard.eu> [Sat, 14 Jul 2012 19:09:22 +0200] rev 17181
log: support --graph without graphlog extension The glog command is preserved in the extension for backward compatibility.
Sat, 14 Jul 2012 18:55:21 +0200 graphlog: extract revset/support functions into cmdutil
Patrick Mezard <patrick@mezard.eu> [Sat, 14 Jul 2012 18:55:21 +0200] rev 17180
graphlog: extract revset/support functions into cmdutil
Wed, 11 Jul 2012 17:13:39 +0200 graphlog: extract ascii drawing code into graphmod
Patrick Mezard <patrick@mezard.eu> [Wed, 11 Jul 2012 17:13:39 +0200] rev 17179
graphlog: extract ascii drawing code into graphmod
(0) -10000 -3000 -1000 -300 -100 -10 +10 +100 +300 +1000 +3000 +10000 +30000 tip