comparison tests/test-largefiles-misc.t @ 24998:c8a97fa742b7

rebase: use dirstateguard instead of dirstate.invalidate Before this patch, "rebase.concludenode()" uses "dirstate.invalidate()" as a kind of "restore .hg/dirstate to the original status" during a failure. But it just discards changes in memory, and doesn't actually restore ".hg/dirstate". Then, it can't work as expected, if "dirstate.write()" is executed while processing. This patch uses "dirstateguard" instead of "dirstate.invalidate()" to restore ".hg/dirstate" during a failure even if "dirstate.write()" is executed before a failure. This patch also removes "beginparentchage()" and "endparentchange()", because "dirstateguard" makes them useless. This is a part of preparations to fix the issue that the recent (in memory) dirstate isn't visible to external processes (e.g. "precommit" hook). After this patch, the changed dirstate becomes visible to external "precommit" hooks during "hg rebase" in "test-largefiles-misc.t", because "dirstateguard()" writes it out. But this content isn't yet correct, because: - "normal3" should be marked as "A"(dded) at committing It is newly added in the changeset being rebased. - but it is marked as "M"(odified) The result of "repo.setparents()" after "dirstateguard()" isn't yet written out before "precommit". So, merging is still in progress for "hg status" in it. This causes marking the file newly added on "other" branch as "A". This will be fixed by subsequent patch.
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Thu, 07 May 2015 12:07:11 +0900
parents 2553ef7355ab
children 1ef96a3b8b89
comparison
equal deleted inserted replaced
24997:12f3c7144a39 24998:c8a97fa742b7
1015 Invoking status precommit hook 1015 Invoking status precommit hook
1016 A normal3 1016 A normal3
1017 1017
1018 $ hg -R no-largefiles -q pull --rebase 1018 $ hg -R no-largefiles -q pull --rebase
1019 Invoking status precommit hook 1019 Invoking status precommit hook
1020 ? normal3 1020 M normal3
1021 1021
1022 (test reverting) 1022 (test reverting)
1023 1023
1024 $ hg init subrepo-root 1024 $ hg init subrepo-root
1025 $ cat >> subrepo-root/.hg/hgrc <<EOF 1025 $ cat >> subrepo-root/.hg/hgrc <<EOF