Mercurial > hg
annotate tests/test-convert-tagsbranch-topology.t @ 40417:49c7b701fdc2 stable
phase: add an archived phase
This phase allows for hidden changesets in the "user space". It differs from
the "internal" phase which is intended for internal by-product only. There
have been discussions at the 4.8 sprint to use such phase to speedup cleanup
after history rewriting operation.
Shipping it in the same release as the 'internal-phase' groups the associated
`requires` entry. The important bit is to have support for this phase in the
earliest version of mercurial possible. Adding the UI to manipulate this new
phase later seems fine.
The current plan for archived usage and user interface are as follow. On a
repository with internal-phase on and evolution off:
* history rewriting command set rewritten changeset in the archived phase.
(This mean updating the cleanupnodes method).
* keep `hg unbundle .hg/strip-backup/X.hg` as a way to restore changeset for
now
(backup bundle need to contains phase data)
* [maybe] add a `hg strip --soft` advance flag
(a light way to expose the feature without getting in the way of a better
UI)
Mercurial 4.8 freeze is too close to get the above in by then.
We don't introduce a new repository `requirement` as we reuse the one
introduced with the 'archived' phase during the 4.8 cycle.
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Wed, 17 Oct 2018 14:47:01 +0200 |
parents | 86fe3c404c1e |
children |
rev | line source |
---|---|
22046
7a9cbb315d84
tests: replace exit 80 with #require
Matt Mackall <mpm@selenic.com>
parents:
20117
diff
changeset
|
1 #require git |
9431
d1b135f2f415
convert: fix history topology when using hg.tagsbranch
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
2 |
16892
cfd892b7569f
test-convert: disable autocrlf for git
Eduard-Cristian Stefan <alexandrul.ct@gmail.com>
parents:
13756
diff
changeset
|
3 $ echo "[core]" >> $HOME/.gitconfig |
cfd892b7569f
test-convert: disable autocrlf for git
Eduard-Cristian Stefan <alexandrul.ct@gmail.com>
parents:
13756
diff
changeset
|
4 $ echo "autocrlf = false" >> $HOME/.gitconfig |
16954
8f36806b8f6a
test-convert: disable autocrlf for git
Eduard-Cristian Stefan <alexandrul.ct@gmail.com>
parents:
16913
diff
changeset
|
5 $ echo "[core]" >> $HOME/.gitconfig |
8f36806b8f6a
test-convert: disable autocrlf for git
Eduard-Cristian Stefan <alexandrul.ct@gmail.com>
parents:
16913
diff
changeset
|
6 $ echo "autocrlf = false" >> $HOME/.gitconfig |
23172
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22046
diff
changeset
|
7 $ cat <<EOF >> $HGRCPATH |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22046
diff
changeset
|
8 > [extensions] |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22046
diff
changeset
|
9 > convert = |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22046
diff
changeset
|
10 > [convert] |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22046
diff
changeset
|
11 > hg.usebranchnames = True |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22046
diff
changeset
|
12 > hg.tagsbranch = tags-update |
e955549cd045
tests: write hgrc of more than two lines by using shell heredoc
Yuya Nishihara <yuya@tcha.org>
parents:
22046
diff
changeset
|
13 > EOF |
12534
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
14 $ GIT_AUTHOR_NAME='test'; export GIT_AUTHOR_NAME |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
15 $ GIT_AUTHOR_EMAIL='test@example.org'; export GIT_AUTHOR_EMAIL |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
16 $ GIT_AUTHOR_DATE="2007-01-01 00:00:00 +0000"; export GIT_AUTHOR_DATE |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
17 $ GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"; export GIT_COMMITTER_NAME |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
18 $ GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"; export GIT_COMMITTER_EMAIL |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
19 $ GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"; export GIT_COMMITTER_DATE |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
20 $ count=10 |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
21 $ action() |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
22 > { |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
23 > GIT_AUTHOR_DATE="2007-01-01 00:00:$count +0000" |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
24 > GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE" |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
25 > git "$@" >/dev/null 2>/dev/null || echo "git command error" |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
26 > count=`expr $count + 1` |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
27 > } |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
28 $ glog() |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
29 > { |
20117
aa9385f983fa
tests: don't load unnecessary graphlog extension
Martin Geisler <martin@geisler.net>
parents:
16954
diff
changeset
|
30 > hg log -G --template '{rev} "{desc|firstline}" files: {files}\n' "$@" |
12534
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
31 > } |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
32 $ convertrepo() |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
33 > { |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
34 > hg convert --datesort git-repo hg-repo |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
35 > } |
9431
d1b135f2f415
convert: fix history topology when using hg.tagsbranch
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
36 |
12534
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
37 Build a GIT repo with at least 1 tag |
9431
d1b135f2f415
convert: fix history topology when using hg.tagsbranch
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
38 |
12534
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
39 $ mkdir git-repo |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
40 $ cd git-repo |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
41 $ git init >/dev/null 2>&1 |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
42 $ echo a > a |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
43 $ git add a |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
44 $ action commit -m "rev1" |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
45 $ action tag -m "tag1" tag1 |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
46 $ cd .. |
9431
d1b135f2f415
convert: fix history topology when using hg.tagsbranch
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
47 |
25741
86fe3c404c1e
convert: add config to not convert tags
Durham Goode <durham@fb.com>
parents:
23172
diff
changeset
|
48 Convert without tags |
86fe3c404c1e
convert: add config to not convert tags
Durham Goode <durham@fb.com>
parents:
23172
diff
changeset
|
49 |
86fe3c404c1e
convert: add config to not convert tags
Durham Goode <durham@fb.com>
parents:
23172
diff
changeset
|
50 $ hg convert git-repo hg-repo --config convert.skiptags=True |
86fe3c404c1e
convert: add config to not convert tags
Durham Goode <durham@fb.com>
parents:
23172
diff
changeset
|
51 initializing destination hg-repo repository |
86fe3c404c1e
convert: add config to not convert tags
Durham Goode <durham@fb.com>
parents:
23172
diff
changeset
|
52 scanning source... |
86fe3c404c1e
convert: add config to not convert tags
Durham Goode <durham@fb.com>
parents:
23172
diff
changeset
|
53 sorting... |
86fe3c404c1e
convert: add config to not convert tags
Durham Goode <durham@fb.com>
parents:
23172
diff
changeset
|
54 converting... |
86fe3c404c1e
convert: add config to not convert tags
Durham Goode <durham@fb.com>
parents:
23172
diff
changeset
|
55 0 rev1 |
86fe3c404c1e
convert: add config to not convert tags
Durham Goode <durham@fb.com>
parents:
23172
diff
changeset
|
56 updating bookmarks |
86fe3c404c1e
convert: add config to not convert tags
Durham Goode <durham@fb.com>
parents:
23172
diff
changeset
|
57 $ hg -R hg-repo tags |
86fe3c404c1e
convert: add config to not convert tags
Durham Goode <durham@fb.com>
parents:
23172
diff
changeset
|
58 tip 0:d98c8ad3a4cf |
86fe3c404c1e
convert: add config to not convert tags
Durham Goode <durham@fb.com>
parents:
23172
diff
changeset
|
59 $ rm -rf hg-repo |
86fe3c404c1e
convert: add config to not convert tags
Durham Goode <durham@fb.com>
parents:
23172
diff
changeset
|
60 |
12534
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
61 Do a first conversion |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
62 |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
63 $ convertrepo |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
64 initializing destination hg-repo repository |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
65 scanning source... |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
66 sorting... |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
67 converting... |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
68 0 rev1 |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
69 updating tags |
13756
6b7077df4aa5
convert: add bookmarks reading support to git backend
Edouard Gomez <ed.gomez@free.fr>
parents:
12534
diff
changeset
|
70 updating bookmarks |
12534
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
71 |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
72 Simulate upstream updates after first conversion |
9431
d1b135f2f415
convert: fix history topology when using hg.tagsbranch
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
73 |
12534
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
74 $ cd git-repo |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
75 $ echo b > a |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
76 $ git add a |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
77 $ action commit -m "rev2" |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
78 $ action tag -m "tag2" tag2 |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
79 $ cd .. |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
80 |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
81 Perform an incremental conversion |
9431
d1b135f2f415
convert: fix history topology when using hg.tagsbranch
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
82 |
12534
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
83 $ convertrepo |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
84 scanning source... |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
85 sorting... |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
86 converting... |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
87 0 rev2 |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
88 updating tags |
13756
6b7077df4aa5
convert: add bookmarks reading support to git backend
Edouard Gomez <ed.gomez@free.fr>
parents:
12534
diff
changeset
|
89 updating bookmarks |
12534
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
90 |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
91 Print the log |
9431
d1b135f2f415
convert: fix history topology when using hg.tagsbranch
Patrick Mezard <pmezard@gmail.com>
parents:
diff
changeset
|
92 |
12534
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
93 $ cd hg-repo |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
94 $ glog |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
95 o 3 "update tags" files: .hgtags |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
96 | |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
97 | o 2 "rev2" files: a |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
98 | | |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
99 o | 1 "update tags" files: .hgtags |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
100 / |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
101 o 0 "rev1" files: a |
3ee3d7634e94
tests: unify test-convert-tagsbranch-topology
Matt Mackall <mpm@selenic.com>
parents:
9431
diff
changeset
|
102 |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16892
diff
changeset
|
103 |
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
16892
diff
changeset
|
104 $ cd .. |