annotate tests/test-convert-tagsbranch-topology.t @ 31975:76169296e52f

obsolescence: add test for the "branch replacement" logic during push, case A2 Mercurial checks for the introduction of new heads on push. Evolution comes into play to detect if existing branches on the server are being replaced by some of the new one we push. The current code for this logic is very basic (eg: issue4354) and was poorly tested. We have a better implementation coming in the evolve extension fixing these issues and with more serious tests coverage. In the process of upstreaming this improved logic, we start with adding the test case that are already passing with the current implementation. Once they are all in, we'll upstream the better implementation and the extra test case. See inline documentation for details about the test case added in this changeset.
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
date Thu, 13 Apr 2017 16:23:01 +0200
parents 86fe3c404c1e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 ..