sapling/eden/scm
Jun Wu cb3b437fe5 phrevset: improve sucessor calculation
Summary:
Currently, phrevset picks the "successor" that has the maximum revision
number. That depends on the assumption that larger revision numbers
are modified last. Howevver, that's not always true with commit cloud sync. For example, in my repo I have D21179514 modified from 63768bf43
to 684612d5d. Phabricator has 63768bf43. Local successor is 684612d5d,
but the revision number of 684612d5d is smaller than 63768bf43:

    quark@devvm1939 ~/hg/edenscm/hgext % hg log -r 'D21179514'
    changeset:   63768bf436d01982a8d42ce97160ac6d9ae2cdad  D21179514
    user:        Jun Wu <quark@fb.com>
    date:        Wed, 22 Apr 2020 09:45:50 -0700
    summary:     [hg] commitcloud: log metalog root during update references

    quark@devvm1939 ~/hg/edenscm/hgext % lhg log -r 'D21179514'
    changeset:   684612d5d606b01c224889f2b3f87aff7b93db49  D21179514  (@)
    user:        Jun Wu <quark@fb.com>
    date:        Wed, 22 Apr 2020 10:10:37 -0700
    summary:     [hg] commitcloud: log metalog root during update references

    quark@devvm1939 ~/hg/edenscm/hgext % lhg log -r 'successors(63768bf436d0198
    2a8d42ce97160ac6d9ae2cdad)' -T '{node} {rev}\n'
    684612d5d606b01c224889f2b3f87aff7b93db49 76718
    63768bf436d01982a8d42ce97160ac6d9ae2cdad 95363

Improve it by actually prefer selecting a non-obsoleted successor.

Reviewed By: sfilipco

Differential Revision: D21267552

fbshipit-source-id: d43d72a7c273c55af70bb41ad967fff0c78a452a
2020-05-06 15:29:56 -07:00
..
contrib remotenames: autopullprefix -> autopullpattern 2020-04-24 11:16:22 -07:00
distutils_rust distutils_rust: retry mt.exe properly 2020-02-19 13:22:39 -08:00
doc py3: fix test-help.t 2020-04-09 18:25:54 -07:00
edenscm phrevset: improve sucessor calculation 2020-05-06 15:29:56 -07:00
edenscmnative transaction: write hgrc to metalog 2020-05-06 12:15:36 -07:00
exec configs: move fbrules to a Facebook only part of the crate 2020-05-01 13:17:21 -07:00
i18n py3: iter{keys,values,items} -> pycompat.iter{keys,values,items} 2020-01-28 16:27:28 -08:00
lib configs: move repo names to a enum 2020-05-06 09:03:17 -07:00
newdoc newdoc: Add mutation and visibility documentation 2020-03-20 04:09:32 -07:00
pystubs fsinfo: expose fstype via bindings.fs.fstype 2020-03-11 17:35:40 -07:00
slides Eliminate obsolete since-last-arc-diff flag 2020-04-14 09:09:12 -07:00
tests autopull: pull names in batch 2020-05-06 15:29:55 -07:00
.editorconfig Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
.flake8 Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
.gitignore py3: fix some type issues detected by pyre with some type stubs 2020-01-31 16:38:02 -08:00
COPYING Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
gen_version.py gen_version.py: run it with python3 2020-03-13 20:08:34 -07:00
hgeditor Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
Makefile build: have make local run on Centos8 2020-03-16 12:54:01 -07:00
README.rst Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
setup3.py configs: move fbrules to a Facebook only part of the crate 2020-05-01 13:17:21 -07:00
setup.py configs: move fbrules to a Facebook only part of the crate 2020-05-01 13:17:21 -07:00

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.