Martin von Zweigbergk <martinvonz@google.com> [Mon, 22 Jun 2020 22:47:33 -0700] rev 45816
tests: test more cases where a file got replaced by a copy
This adds a test where a file is modified on one branch and is renamed
onto another file in another branch. That should ideally be
automatically resolved (by propagating the modification to the rename
destination). Alternatively, it could be considered a modify/delete
conflict. It should at least not be automatically resolved by ignoring
the modification. However, that is what actually happens with the
changeset-centric algorithm since I broke it in
b4057d001760 (merge:
when rename was made on both sides, use ancestor as merge base,
2020-01-22). Before that commit, it resulted in a modify/delete
conflict. The filelog-centric algorithm was broken already before that
commit.
Differential Revision: https://phab.mercurial-scm.org/D8652
Joerg Sonnenberger <joerg@bec.de> [Wed, 07 Oct 2020 03:00:26 +0200] rev 45815
unionrepo: don't insert index tuples with None as int field
None is not a valid size. Use -1 as placeholder instead. This will be
necessary when the index starts enforcing type correctness.
Differential Revision: https://phab.mercurial-scm.org/D9161
Joerg Sonnenberger <joerg@bec.de> [Wed, 07 Oct 2020 03:00:01 +0200] rev 45814
bundlerepo: don't insert index tuples with full nodes as linkrev
The index format has a documented format and latter changes will start
to enforce the field types. The bundlerepo uses full nodes for the
linkrev field when it should be using revision numbers. Use the link
mapping to resolve them, except in the special case of self-references.
Those are actually indications of a missing linkrev.
Differential Revision: https://phab.mercurial-scm.org/D9160
Antoine cezar<acezar@chwitlabs.fr> [Tue, 20 Oct 2020 15:09:08 +0200] rev 45813
rhg: add full node id support for `debugdata` command
Unlike other later implemented commands `debugdata` only supported revision
number. This changeset add full node id support for consistency with other
commands.
Differential Revision: https://phab.mercurial-scm.org/D9230
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Thu, 29 Oct 2020 13:54:25 +0100] rev 45812
commit: warn the user when a commit already exists
Sometimes, a commit will result in an exact match of a preexisting
commit, and if that commit isn't a branch head, hg will incorrectly
note that it created a new head. Instead, we should warn the user that
commit already existed in the repository.
In practice, this bug is rather uncommon, and will only occur when the
usr explicitly sets the date.
Please note that this commit contains an API change to
cmdutil.commitstatus()
Differential Revision: https://phab.mercurial-scm.org/D9257
Joerg Sonnenberger <joerg@bec.de> [Tue, 06 Oct 2020 13:34:51 +0200] rev 45811
revlog: don't cache parsed tuples in the C module
A cached entry creates ~8 Python objects per cached changeset, which
comes to around 200 Bytes per cached changeset on AMD64. Especially for
operations that touch a lot of changesets, that can easily sum up to
more than a 100MB of memory. Simple tests on large repositories show
<2% runtime penalty for ripping out the cache, even for cache heavy
operations like "hg log" for all revisions.
Differential Revision: https://phab.mercurial-scm.org/D9155
Martin von Zweigbergk <martinvonz@google.com> [Fri, 16 Oct 2020 16:00:32 -0700] rev 45810
fix: only check for obsolete commits in the --rev case
With both `--all` and `--source`, we already exclude obsolete
revisions in the revset, so there's no need to call
`checkfixablectx()` in those cases.
Differential Revision: https://phab.mercurial-scm.org/D9227
Martin von Zweigbergk <martinvonz@google.com> [Fri, 16 Oct 2020 15:02:46 -0700] rev 45809
fix: don't include obsolete descendants with -s
The `-s/--source` option is for regular users (`-r` is there for power
users). If there are obsolete commits that are descendants of the
given revision(s), then they almost definitely should just be left
alone. That's what `hg rebase` does as well. So this patch makes it so
we skip obsolete commits (including those in the input set itself).
Differential Revision: https://phab.mercurial-scm.org/D9226
Martin von Zweigbergk <martinvonz@google.com> [Fri, 16 Oct 2020 11:15:00 -0700] rev 45808
tests: add test showing how `hg fix -s` deals with obsolete and orphan nodes
We didn't have any tests for how `hg fix -s` behaves with obsolete
commits among the descendants. The next patch will change the behavior
in this area.
Differential Revision: https://phab.mercurial-scm.org/D9225
Martin von Zweigbergk <martinvonz@google.com> [Fri, 16 Oct 2020 15:05:43 -0700] rev 45807
fix: suggest --source instead of --rev on empty revset
`--source` is the recommended flag for regular users (`--rev` is
available for advanced users).
Differential Revision: https://phab.mercurial-scm.org/D9224
Antoine cezar<acezar@chwitlabs.fr> [Mon, 28 Sep 2020 17:13:15 +0200] rev 45806
hg-core: fix path encoding usage
1. Hash encoded path are in `.hg/store/dh` instead of `.hg/store/data`.
2. Path encoded index and data files may not have the same parent path.
It is not just about replacing `.i` by `.d`
Differential Revision: https://phab.mercurial-scm.org/D9121
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Mon, 26 Oct 2020 11:45:32 +0100] rev 45805
push: add --all-bookmarks option
Differential Revision: https://phab.mercurial-scm.org/D9261
Antoine cezar<acezar@chwitlabs.fr> [Thu, 29 Oct 2020 19:25:33 +0100] rev 45804
rhg: strip copied files metadata from `cat` output
Differential Revision: https://phab.mercurial-scm.org/D9264
Augie Fackler <augie@google.com> [Mon, 02 Nov 2020 14:39:43 -0500] rev 45803
merge with stable