annotate tests/test-rebase-empty-successor.t @ 46472:98e39f04d60e

upgrade: implement partial upgrade for upgrading persistent-nodemap Upgrading repositories to use persistent nodemap should be fast and easy as it requires only two things: 1) Updating the requirements 2) Writing a persistent-nodemap on disk For both of the steps above, we don't need to edit existing revlogs. This patch makes upgrade only do the above mentioned two steps if we are only upgarding to use persistent-nodemap feature. Since `nodemap.persist_nodemap()` assumes that there exists a nodemap file for the given revlog if we are trying to call it, this patch adds `force` argument to create a file if does not exist which is true in our upgrade case. The test changes demonstrate that we no longer write nodemap files for manifest after upgrade which I think is desirable. Differential Revision: https://phab.mercurial-scm.org/D9936
author Pulkit Goyal <7895pulkit@gmail.com>
date Mon, 01 Feb 2021 00:02:00 +0530
parents f90a5c211251
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
45123
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
1 $ cat << EOF >> $HGRCPATH
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
2 > [extensions]
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
3 > rebase=
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
4 > [alias]
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
5 > tglog = log -G -T "{rev} '{desc}'\n"
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
6 > EOF
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
7
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
8 $ hg init
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
9
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
10 $ echo a > a; hg add a; hg ci -m a
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
11 $ echo b > b; hg add b; hg ci -m b1
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
12 $ hg up 0 -q
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
13 $ echo b > b; hg add b; hg ci -m b2 -q
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
14
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
15 $ hg tglog
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
16 @ 2 'b2'
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
17 |
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
18 | o 1 'b1'
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
19 |/
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
20 o 0 'a'
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
21
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
22
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
23 With rewrite.empty-successor=skip, b2 is skipped because it would become empty.
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
24
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
25 $ hg rebase -s 2 -d 1 --config rewrite.empty-successor=skip --dry-run
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
26 starting dry-run rebase; repository will not be changed
45771
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45123
diff changeset
27 rebasing 2:6e2aad5e0f3c tip "b2"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45123
diff changeset
28 note: not rebasing 2:6e2aad5e0f3c tip "b2", its destination already has all its changes
45123
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
29 dry-run rebase completed successfully; run without -n/--dry-run to perform this rebase
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
30
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
31 With rewrite.empty-successor=keep, b2 will be recreated although it became empty.
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
32
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
33 $ hg rebase -s 2 -d 1 --config rewrite.empty-successor=keep
45771
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45123
diff changeset
34 rebasing 2:6e2aad5e0f3c tip "b2"
f90a5c211251 rebase: change and standarize template for rebase's one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45123
diff changeset
35 note: created empty successor for 2:6e2aad5e0f3c tip "b2", its destination already has all its changes
45123
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
36 saved backup bundle to $TESTTMP/.hg/strip-backup/6e2aad5e0f3c-7d7c8801-rebase.hg
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
37
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
38 $ hg tglog
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
39 @ 2 'b2'
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
40 |
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
41 o 1 'b1'
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
42 |
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
43 o 0 'a'
1efbfa9b36a7 rebase: consider rewrite.empty-successor configuration
Manuel Jacob <me@manueljacob.de>
parents:
diff changeset
44