annotate tests/test-import-context.t @ 41722:37b33c34bf4f

templatekw: add a {negrev} keyword Revision numbers are getting much maligned for two reasons: they are too long in large repos and users get confused by their local-only nature. It just occurred to me that negative revision numbers avoid both of those problems. Since negative revision numbers change whenever the repo changes, it's much more obvious that they are a local-only convenience. Additionally, for the recent commits that we usually care about the most, negative revision numbers are always near zero. This commit adds a negrev templatekw to more easily expose negative revision numbers. It's not easy to reliably produce this output with existing keywords due to hidden commits while at the same time ensuring good performance.
author Jordi Gutiérrez Hermoso <jordigh@octave.org>
date Fri, 15 Feb 2019 14:43:31 -0500
parents 633da7139e4a
children c70bdd222dcd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12825
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
1 Test applying context diffs
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
2
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
3 $ cat > writepatterns.py <<EOF
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
4 > import sys
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
5 >
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
6 > path = sys.argv[1]
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
7 > lasteol = sys.argv[2] == '1'
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
8 > patterns = sys.argv[3:]
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
9 >
36394
4bc983568016 py3: replace file() with open()
Pulkit Goyal <7895pulkit@gmail.com>
parents: 32940
diff changeset
10 > fp = open(path, 'wb')
12825
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
11 > for i, pattern in enumerate(patterns):
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
12 > count = int(pattern[0:-1])
38365
bf953d218a91 py3: encode sys.argv to bytes using .encode()
Pulkit Goyal <7895pulkit@gmail.com>
parents: 36394
diff changeset
13 > char = pattern[-1].encode('utf8') + b'\n'
12825
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
14 > if not lasteol and i == len(patterns) - 1:
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
15 > fp.write((char*count)[:-1])
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
16 > else:
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
17 > fp.write(char*count)
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
18 > fp.close()
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
19 > EOF
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
20 $ cat > cat.py <<EOF
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
21 > import sys
40350
633da7139e4a py3: fix test-import-context.t
Matt Harbison <matt_harbison@yahoo.com>
parents: 39707
diff changeset
22 > from mercurial import pycompat
633da7139e4a py3: fix test-import-context.t
Matt Harbison <matt_harbison@yahoo.com>
parents: 39707
diff changeset
23 > from mercurial.utils import stringutil
633da7139e4a py3: fix test-import-context.t
Matt Harbison <matt_harbison@yahoo.com>
parents: 39707
diff changeset
24 > pycompat.stdout.write(b'%s\n'
633da7139e4a py3: fix test-import-context.t
Matt Harbison <matt_harbison@yahoo.com>
parents: 39707
diff changeset
25 > % stringutil.pprint(open(sys.argv[1], 'rb').read()))
12825
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
26 > EOF
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
27
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
28 Initialize the test repository
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
29
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
30 $ hg init repo
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
31 $ cd repo
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 38365
diff changeset
32 $ "$PYTHON" ../writepatterns.py a 0 5A 1B 5C 1D
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 38365
diff changeset
33 $ "$PYTHON" ../writepatterns.py b 1 1A 1B
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 38365
diff changeset
34 $ "$PYTHON" ../writepatterns.py c 1 5A
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 38365
diff changeset
35 $ "$PYTHON" ../writepatterns.py d 1 5A 1B
12825
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
36 $ hg add
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
37 adding a
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
38 adding b
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
39 adding c
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
40 adding d
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
41 $ hg ci -m addfiles
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
42
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
43 Add file, missing a last end of line
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
44
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
45 $ hg import --no-commit - <<EOF
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
46 > *** /dev/null 2010-10-16 18:05:49.000000000 +0200
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
47 > --- b/newnoeol 2010-10-16 18:23:26.000000000 +0200
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
48 > ***************
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
49 > *** 0 ****
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
50 > --- 1,2 ----
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
51 > + a
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
52 > + b
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
53 > \ No newline at end of file
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
54 > *** a/a Sat Oct 16 16:35:51 2010
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
55 > --- b/a Sat Oct 16 16:35:51 2010
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
56 > ***************
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
57 > *** 3,12 ****
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
58 > A
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
59 > A
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
60 > A
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
61 > ! B
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
62 > C
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
63 > C
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
64 > C
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
65 > C
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
66 > C
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
67 > ! D
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
68 > \ No newline at end of file
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
69 > --- 3,13 ----
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
70 > A
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
71 > A
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
72 > A
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
73 > ! E
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
74 > C
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
75 > C
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
76 > C
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
77 > C
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
78 > C
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
79 > ! F
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
80 > ! F
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
81 >
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
82 > *** a/b 2010-10-16 18:40:38.000000000 +0200
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
83 > --- /dev/null 2010-10-16 18:05:49.000000000 +0200
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
84 > ***************
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
85 > *** 1,2 ****
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
86 > - A
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
87 > - B
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
88 > --- 0 ----
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
89 > *** a/c Sat Oct 16 21:34:26 2010
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
90 > --- b/c Sat Oct 16 21:34:27 2010
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
91 > ***************
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
92 > *** 3,5 ****
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
93 > --- 3,7 ----
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
94 > A
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
95 > A
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
96 > A
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
97 > + B
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
98 > + B
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
99 > *** a/d Sat Oct 16 21:47:20 2010
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
100 > --- b/d Sat Oct 16 21:47:22 2010
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
101 > ***************
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
102 > *** 2,6 ****
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
103 > A
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
104 > A
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
105 > A
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
106 > - A
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
107 > - B
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
108 > --- 2,4 ----
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
109 > EOF
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
110 applying patch from stdin
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
111 $ hg st
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
112 M a
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
113 M c
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
114 M d
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
115 A newnoeol
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
116 R b
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
117
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
118 What's in a
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
119
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 38365
diff changeset
120 $ "$PYTHON" ../cat.py a
12825
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
121 'A\nA\nA\nA\nA\nE\nC\nC\nC\nC\nC\nF\nF\n'
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 38365
diff changeset
122 $ "$PYTHON" ../cat.py newnoeol
12825
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
123 'a\nb'
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 38365
diff changeset
124 $ "$PYTHON" ../cat.py c
12825
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
125 'A\nA\nA\nA\nA\nB\nB\n'
39707
5abc47d4ca6b tests: quote PYTHON usage
Matt Harbison <matt_harbison@yahoo.com>
parents: 38365
diff changeset
126 $ "$PYTHON" ../cat.py d
12825
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
127 'A\nA\nA\nA\n'
61f48581d8ef Test applying context diffs
Patrick Mezard <pmezard@gmail.com>
parents:
diff changeset
128
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 12825
diff changeset
129 $ cd ..