Mercurial > hg
annotate tests/test-import-context.t @ 39548:7ce9dea3a14a
localrepo: move repo creation logic out of localrepository.__init__ (API)
It has long bothered me that local repository creation is handled as
part of localrepository.__init__. Upcoming changes I want to make
around how repositories are initialized and instantiated will make
the continued existence of repository creation code in
localrepository.__init__ even more awkward.
localrepository instances are almost never constructed directly:
instead, callers are supposed to go through hg.repository() to obtain
a handle on a repository. And hg.repository() calls
localrepo.instance() to return a new repo instance.
This commit teaches localrepo.instance() to handle the create=True
logic. Most of the code for repo construction has been moved to a
standalone function. This allows extensions to monkeypatch the function
to further customize freshly-created repositories.
A few calls to localrepo.localrepository.__init__ that were passing
create=True were converted to call localrepo.instance().
.. api:: local repo creation moved out of constructor
``localrepo.localrepository.__init__`` no longer accepts a
``create`` argument to create a new repository. New repository
creation is now performed as part of ``localrepo.instance()``
and the bulk of the work is performed by
``localrepo.createrepository()``.
Differential Revision: https://phab.mercurial-scm.org/D4534
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Tue, 11 Sep 2018 13:46:59 -0700 |
parents | bf953d218a91 |
children | 5abc47d4ca6b |
rev | line source |
---|---|
12825 | 1 Test applying context diffs |
2 | |
3 $ cat > writepatterns.py <<EOF | |
4 > import sys | |
5 > | |
6 > path = sys.argv[1] | |
7 > lasteol = sys.argv[2] == '1' | |
8 > patterns = sys.argv[3:] | |
9 > | |
36394
4bc983568016
py3: replace file() with open()
Pulkit Goyal <7895pulkit@gmail.com>
parents:
32940
diff
changeset
|
10 > fp = open(path, 'wb') |
12825 | 11 > for i, pattern in enumerate(patterns): |
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 | 14 > if not lasteol and i == len(patterns) - 1: |
15 > fp.write((char*count)[:-1]) | |
16 > else: | |
17 > fp.write(char*count) | |
18 > fp.close() | |
19 > EOF | |
20 $ cat > cat.py <<EOF | |
21 > import sys | |
36394
4bc983568016
py3: replace file() with open()
Pulkit Goyal <7895pulkit@gmail.com>
parents:
32940
diff
changeset
|
22 > sys.stdout.write(repr(open(sys.argv[1], 'rb').read()) + '\n') |
12825 | 23 > EOF |
24 | |
25 Initialize the test repository | |
26 | |
27 $ hg init repo | |
28 $ cd repo | |
32940
75be14993fda
cleanup: use $PYTHON to run python in many more tests
Augie Fackler <augie@google.com>
parents:
16913
diff
changeset
|
29 $ $PYTHON ../writepatterns.py a 0 5A 1B 5C 1D |
75be14993fda
cleanup: use $PYTHON to run python in many more tests
Augie Fackler <augie@google.com>
parents:
16913
diff
changeset
|
30 $ $PYTHON ../writepatterns.py b 1 1A 1B |
75be14993fda
cleanup: use $PYTHON to run python in many more tests
Augie Fackler <augie@google.com>
parents:
16913
diff
changeset
|
31 $ $PYTHON ../writepatterns.py c 1 5A |
75be14993fda
cleanup: use $PYTHON to run python in many more tests
Augie Fackler <augie@google.com>
parents:
16913
diff
changeset
|
32 $ $PYTHON ../writepatterns.py d 1 5A 1B |
12825 | 33 $ hg add |
34 adding a | |
35 adding b | |
36 adding c | |
37 adding d | |
38 $ hg ci -m addfiles | |
39 | |
40 Add file, missing a last end of line | |
41 | |
42 $ hg import --no-commit - <<EOF | |
43 > *** /dev/null 2010-10-16 18:05:49.000000000 +0200 | |
44 > --- b/newnoeol 2010-10-16 18:23:26.000000000 +0200 | |
45 > *************** | |
46 > *** 0 **** | |
47 > --- 1,2 ---- | |
48 > + a | |
49 > + b | |
50 > \ No newline at end of file | |
51 > *** a/a Sat Oct 16 16:35:51 2010 | |
52 > --- b/a Sat Oct 16 16:35:51 2010 | |
53 > *************** | |
54 > *** 3,12 **** | |
55 > A | |
56 > A | |
57 > A | |
58 > ! B | |
59 > C | |
60 > C | |
61 > C | |
62 > C | |
63 > C | |
64 > ! D | |
65 > \ No newline at end of file | |
66 > --- 3,13 ---- | |
67 > A | |
68 > A | |
69 > A | |
70 > ! E | |
71 > C | |
72 > C | |
73 > C | |
74 > C | |
75 > C | |
76 > ! F | |
77 > ! F | |
78 > | |
79 > *** a/b 2010-10-16 18:40:38.000000000 +0200 | |
80 > --- /dev/null 2010-10-16 18:05:49.000000000 +0200 | |
81 > *************** | |
82 > *** 1,2 **** | |
83 > - A | |
84 > - B | |
85 > --- 0 ---- | |
86 > *** a/c Sat Oct 16 21:34:26 2010 | |
87 > --- b/c Sat Oct 16 21:34:27 2010 | |
88 > *************** | |
89 > *** 3,5 **** | |
90 > --- 3,7 ---- | |
91 > A | |
92 > A | |
93 > A | |
94 > + B | |
95 > + B | |
96 > *** a/d Sat Oct 16 21:47:20 2010 | |
97 > --- b/d Sat Oct 16 21:47:22 2010 | |
98 > *************** | |
99 > *** 2,6 **** | |
100 > A | |
101 > A | |
102 > A | |
103 > - A | |
104 > - B | |
105 > --- 2,4 ---- | |
106 > EOF | |
107 applying patch from stdin | |
108 $ hg st | |
109 M a | |
110 M c | |
111 M d | |
112 A newnoeol | |
113 R b | |
114 | |
115 What's in a | |
116 | |
32940
75be14993fda
cleanup: use $PYTHON to run python in many more tests
Augie Fackler <augie@google.com>
parents:
16913
diff
changeset
|
117 $ $PYTHON ../cat.py a |
12825 | 118 'A\nA\nA\nA\nA\nE\nC\nC\nC\nC\nC\nF\nF\n' |
32940
75be14993fda
cleanup: use $PYTHON to run python in many more tests
Augie Fackler <augie@google.com>
parents:
16913
diff
changeset
|
119 $ $PYTHON ../cat.py newnoeol |
12825 | 120 'a\nb' |
32940
75be14993fda
cleanup: use $PYTHON to run python in many more tests
Augie Fackler <augie@google.com>
parents:
16913
diff
changeset
|
121 $ $PYTHON ../cat.py c |
12825 | 122 'A\nA\nA\nA\nA\nB\nB\n' |
32940
75be14993fda
cleanup: use $PYTHON to run python in many more tests
Augie Fackler <augie@google.com>
parents:
16913
diff
changeset
|
123 $ $PYTHON ../cat.py d |
12825 | 124 'A\nA\nA\nA\n' |
125 | |
16913
f2719b387380
tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents:
12825
diff
changeset
|
126 $ cd .. |