annotate tests/test-amend-subrepo.t @ 39764:e4e881572382

localrepo: iteratively derive local repository type This commit implements the dynamic local repository type derivation that was explained in the recent commit bfeab472e3c0 "localrepo: create new function for instantiating a local repo object." Instead of a static localrepository class/type which must be customized after construction, we now dynamically construct a type by building up base classes/types to represent specific repository interfaces. Conceptually, the end state is similar to what was happening when various extensions would monkeypatch the __class__ of newly-constructed repo instances. However, the approach is inverted. Instead of making the instance then customizing it, we do the customization up front by influencing the behavior of the type then we instantiate that custom type. This approach gives us much more flexibility. For example, we can use completely separate classes for implementing different aspects of the repository. For example, we could have one class representing revlog-based file storage and another representing non-revlog based file storage. When then choose which implementation to use based on the presence of repo requirements. A concern with this approach is that it creates a lot more types and complexity and that complexity adds overhead. Yes, it is true that this approach will result in more types being created. Yes, this is more complicated than traditional "instantiate a static type." However, I believe the alternatives to supporting alternate storage backends are just as complicated. (Before I arrived at this solution, I had patches storing factory functions on local repo instances for e.g. constructing a file storage instance. We ended up having a handful of these. And this was logically identical to assigning custom methods. Since we were logically changing the type of the instance, I figured it would be better to just use specialized types instead of introducing levels of abstraction at run-time.) On the performance front, I don't believe that having N base classes has any significant performance overhead compared to just a single base class. Intuition says that Python will need to iterate the base classes to find an attribute. However, CPython caches method lookups: as long as the __class__ or MRO isn't changing, method attribute lookup should be constant time after first access. And non-method attributes are stored in __dict__, of which there is only 1 per object, so the number of base classes for __dict__ is irrelevant. Anyway, this commit splits up the monolithic completelocalrepository interface into sub-interfaces: 1 for file storage and 1 representing everything else. We've taught ``makelocalrepository()`` to call a series of factory functions which will produce types implementing specific interfaces. It then calls type() to create a new type from the built-up list of base types. This commit should be considered a start and not the end state. I suspect we'll hit a number of problems as we start to implement alternate storage backends: * Passing custom arguments to __init__ and setting custom attributes on __dict__. * Customizing the set of interfaces that are needed. e.g. the "readonly" intent could translate to not requesting an interface providing methods related to writing. * More ergonomic way for extensions to insert themselves so their callbacks aren't unconditionally called. * Wanting to modify vfs instances, other arguments passed to __init__. That being said, this code is usable in its current state and I'm convinced future commits will demonstrate the value in this approach. Differential Revision: https://phab.mercurial-scm.org/D4642
author Gregory Szorc <gregory.szorc@gmail.com>
date Tue, 18 Sep 2018 15:29:42 -0700
parents 4441705b7111
children 4ea21df312ec
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
35024
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
1 #testcases obsstore-off obsstore-on
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
2
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
3 $ cat << EOF >> $HGRCPATH
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
4 > [extensions]
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
5 > amend =
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
6 > EOF
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
7
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
8 #if obsstore-on
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
9 $ cat << EOF >> $HGRCPATH
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
10 > [experimental]
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
11 > evolution.createmarkers = True
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
12 > EOF
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
13 #endif
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
14
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
15 Prepare parent repo
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
16 -------------------
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
17
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
18 $ hg init r
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
19 $ cd r
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
20
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
21 $ echo a > a
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
22 $ hg ci -Am0
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
23 adding a
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
24
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
25 Link first subrepo
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
26 ------------------
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
27
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
28 $ echo 's = s' >> .hgsub
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
29 $ hg add .hgsub
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
30 $ hg init s
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
31
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
32 amend without .hgsub
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
33
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
34 $ hg amend s
35026
691524f0bbf6 amend: update .hgsubstate before committing a memctx (issue5677)
Yuya Nishihara <yuya@tcha.org>
parents: 35024
diff changeset
35 abort: can't commit subrepos without .hgsub
691524f0bbf6 amend: update .hgsubstate before committing a memctx (issue5677)
Yuya Nishihara <yuya@tcha.org>
parents: 35024
diff changeset
36 [255]
35024
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
37
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
38 amend with subrepo
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
39
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
40 $ hg amend
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
41 saved backup bundle to * (glob) (obsstore-off !)
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
42 $ hg status --change .
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
43 A .hgsub
35026
691524f0bbf6 amend: update .hgsubstate before committing a memctx (issue5677)
Yuya Nishihara <yuya@tcha.org>
parents: 35024
diff changeset
44 A .hgsubstate
35024
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
45 A a
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
46 $ cat .hgsubstate
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
47 0000000000000000000000000000000000000000 s
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
48
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
49 Update subrepo
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
50 --------------
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
51
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
52 add new commit to be amended
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
53
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
54 $ echo a >> a
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
55 $ hg ci -m1
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
56
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
57 amend with dirty subrepo
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
58
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
59 $ echo a >> s/a
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
60 $ hg add -R s
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 35166
diff changeset
61 adding s/a
35024
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
62 $ hg amend
35026
691524f0bbf6 amend: update .hgsubstate before committing a memctx (issue5677)
Yuya Nishihara <yuya@tcha.org>
parents: 35024
diff changeset
63 abort: uncommitted changes in subrepository "s"
691524f0bbf6 amend: update .hgsubstate before committing a memctx (issue5677)
Yuya Nishihara <yuya@tcha.org>
parents: 35024
diff changeset
64 (use --subrepos for recursive commit)
691524f0bbf6 amend: update .hgsubstate before committing a memctx (issue5677)
Yuya Nishihara <yuya@tcha.org>
parents: 35024
diff changeset
65 [255]
35024
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
66
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
67 amend with modified subrepo
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
68
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
69 $ hg ci -R s -m0
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
70 $ hg amend
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
71 saved backup bundle to * (glob) (obsstore-off !)
35026
691524f0bbf6 amend: update .hgsubstate before committing a memctx (issue5677)
Yuya Nishihara <yuya@tcha.org>
parents: 35024
diff changeset
72 $ hg status --change .
691524f0bbf6 amend: update .hgsubstate before committing a memctx (issue5677)
Yuya Nishihara <yuya@tcha.org>
parents: 35024
diff changeset
73 M .hgsubstate
691524f0bbf6 amend: update .hgsubstate before committing a memctx (issue5677)
Yuya Nishihara <yuya@tcha.org>
parents: 35024
diff changeset
74 M a
35024
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
75 $ cat .hgsubstate
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
76 f7b1eb17ad24730a1651fccd46c43826d1bbc2ac s
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
77
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
78 revert subrepo change
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
79
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
80 $ hg up -R s -q null
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
81 $ hg amend
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
82 saved backup bundle to * (glob) (obsstore-off !)
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
83 $ hg status --change .
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
84 M a
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
85
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
86 Link another subrepo
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
87 --------------------
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
88
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
89 add new commit to be amended
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
90
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
91 $ echo b >> b
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
92 $ hg ci -qAm2
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
93
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
94 also checks if non-subrepo change is included
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
95
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
96 $ echo a >> a
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
97
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
98 amend with another subrepo
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
99
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
100 $ hg init t
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
101 $ echo b >> t/b
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
102 $ hg ci -R t -Am0
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
103 adding b
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
104 $ echo 't = t' >> .hgsub
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
105 $ hg amend
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
106 saved backup bundle to * (glob) (obsstore-off !)
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
107 $ hg status --change .
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
108 M .hgsub
35026
691524f0bbf6 amend: update .hgsubstate before committing a memctx (issue5677)
Yuya Nishihara <yuya@tcha.org>
parents: 35024
diff changeset
109 M .hgsubstate
35024
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
110 M a
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
111 A b
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
112 $ cat .hgsubstate
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
113 0000000000000000000000000000000000000000 s
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
114 bfb1a4fb358498a9533dabf4f2043d94162f1fcd t
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
115
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
116 Unlink one subrepo
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
117 ------------------
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
118
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
119 add new commit to be amended
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
120
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
121 $ echo a >> a
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
122 $ hg ci -m3
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
123
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
124 amend with one subrepo dropped
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
125
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
126 $ echo 't = t' > .hgsub
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
127 $ hg amend
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
128 saved backup bundle to * (glob) (obsstore-off !)
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
129 $ hg status --change .
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
130 M .hgsub
35026
691524f0bbf6 amend: update .hgsubstate before committing a memctx (issue5677)
Yuya Nishihara <yuya@tcha.org>
parents: 35024
diff changeset
131 M .hgsubstate
35024
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
132 M a
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
133 $ cat .hgsubstate
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
134 bfb1a4fb358498a9533dabf4f2043d94162f1fcd t
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
135
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
136 Unlink subrepos completely
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
137 --------------------------
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
138
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
139 add new commit to be amended
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
140
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
141 $ echo a >> a
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
142 $ hg ci -m3
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
143
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
144 amend with .hgsub removed
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
145
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
146 $ hg rm .hgsub
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
147 $ hg amend
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
148 saved backup bundle to * (glob) (obsstore-off !)
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
149 $ hg status --change .
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
150 M a
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
151 R .hgsub
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
152 R .hgsubstate
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
153
3f909147a2c3 tests: demonstrate that .hgsubstate isn't updated on amend
Yuya Nishihara <yuya@tcha.org>
parents:
diff changeset
154 $ cd ..