mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 15:27:13 +03:00
A Scalable, User-Friendly Source Control System.
7cd70adbc1
As Augie reported in the bug, the current heuristic of choosing the best tag of a merge commit by taking the one with newest tag (in terms of tagging date) currently fails in the Mercurial repo itself. Copying the example from Yuya: $ hg glog -T '{node|short} {latesttag}+{latesttagdistance}\n' \ -r '4.2.3: & (merge() + parents(merge()) + tag())' o cc59efae4cc0 4.2.3+5 |\ | o 06f60e88fc3a 4.2.3+4 | |\ | | o c191a9eb0b10 4.3-rc+109 | | | | | ~ o | 49ada93fdc10 4.3.1+2 : | o | 229937197835 4.3.1+0 |/ o 6a83ad94c0f2 4.2.3+3 |\ | ~ o 8e9dcdd1de74 4.2.3+2 : o 525f2b18248f 4.2.3+0 | ~ It seems to me like the best choice is the tag with the smallest number of changes since it (across all paths, not the longest single path). So that's what this patch does, even though it's costly. Best-of-5 timings for Yuya's command above shows a slowdown from 1.293s to 1.610s. We can optimize it later. Differential Revision: https://phab.mercurial-scm.org/D447 |
||
---|---|---|
contrib | ||
doc | ||
hgdemandimport | ||
hgext | ||
hgext3rd | ||
i18n | ||
mercurial | ||
tests | ||
.editorconfig | ||
.hgignore | ||
.hgsigs | ||
CONTRIBUTING | ||
CONTRIBUTORS | ||
COPYING | ||
hg | ||
hgeditor | ||
hgweb.cgi | ||
Makefile | ||
README | ||
setup.py |
Mercurial ========= Mercurial is a fast, easy to use, distributed revision control tool for software developers. Basic install:: $ make # see install targets $ make install # do a system-wide install $ hg debuginstall # sanity-check setup $ hg # see help Running without installing:: $ make local # build for inplace usage $ ./hg --version # should show the latest version See https://mercurial-scm.org/ for detailed installation instructions, platform-specific notes, and Mercurial user information.