##// END OF EJS Templates
filectx: handle some other simple cases for finding merge ancestor
Matt Mackall -
r16601:0c98820b default
parent child Browse files
Show More
@@ -645,9 +645,16 b' class filectx(object):'
645 # the easy case: no (relevant) renames
645 # the easy case: no (relevant) renames
646 if fc2.path() == self.path() and self.path() in actx:
646 if fc2.path() == self.path() and self.path() in actx:
647 return actx[self.path()]
647 return actx[self.path()]
648 acache = {}
648
649 # the next easiest cases: unambiguous predecessor (name trumps
650 # history)
651 if self.path() in actx and fc2.path() not in actx:
652 return actx[self.path()]
653 if fc2.path() in actx and self.path() not in actx:
654 return actx[fc2.path()]
649
655
650 # prime the ancestor cache for the working directory
656 # prime the ancestor cache for the working directory
657 acache = {}
651 for c in (self, fc2):
658 for c in (self, fc2):
652 if c._filerev is None:
659 if c._filerev is None:
653 pl = [(n.path(), n.filenode()) for n in c.parents()]
660 pl = [(n.path(), n.filenode()) for n in c.parents()]
@@ -72,28 +72,23 b' Graft a rename:'
72 # HG changeset patch
72 # HG changeset patch
73 # User foo
73 # User foo
74 # Date 0 0
74 # Date 0 0
75 # Node ID d2e44c99fd3f31c176ea4efb9eca9f6306c81756
75 # Node ID ef0ef43d49e79e81ddafdc7997401ba0041efc82
76 # Parent 68795b066622ca79a25816a662041d8f78f3cd9e
76 # Parent 68795b066622ca79a25816a662041d8f78f3cd9e
77 2
77 2
78
78
79 diff --git a/a b/b
79 diff --git a/a b/b
80 rename from a
80 rename from a
81 rename to b
81 rename to b
82 --- a/a
83 +++ b/b
84 @@ -1,1 +1,1 @@
85 -a
86 +b
87
82
88 Look for extra:source
83 Look for extra:source
89
84
90 $ hg log --debug -r tip
85 $ hg log --debug -r tip
91 changeset: 7:d2e44c99fd3f31c176ea4efb9eca9f6306c81756
86 changeset: 7:ef0ef43d49e79e81ddafdc7997401ba0041efc82
92 tag: tip
87 tag: tip
93 phase: draft
88 phase: draft
94 parent: 0:68795b066622ca79a25816a662041d8f78f3cd9e
89 parent: 0:68795b066622ca79a25816a662041d8f78f3cd9e
95 parent: -1:0000000000000000000000000000000000000000
90 parent: -1:0000000000000000000000000000000000000000
96 manifest: 7:5d59766436fd8fbcd38e7bebef0f6eaf3eebe637
91 manifest: 7:e59b6b228f9cbf9903d5e9abf996e083a1f533eb
97 user: foo
92 user: foo
98 date: Thu Jan 01 00:00:00 1970 +0000
93 date: Thu Jan 01 00:00:00 1970 +0000
99 files+: b
94 files+: b
@@ -128,16 +123,20 b' Graft out of order, skipping a merge and'
128 checking for directory renames
123 checking for directory renames
129 resolving manifests
124 resolving manifests
130 overwrite: False, partial: False
125 overwrite: False, partial: False
131 ancestor: 68795b066622, local: d2e44c99fd3f+, remote: 5d205f8b35b6
126 ancestor: 68795b066622, local: ef0ef43d49e7+, remote: 5d205f8b35b6
132 b: local copied/moved to a -> m
127 b: local copied/moved to a -> m
133 preserving b for resolve of b
128 preserving b for resolve of b
134 updating: b 1/1 files (100.00%)
129 updating: b 1/1 files (100.00%)
135 graft for revision 1 is empty
130 picked tool 'internal:merge' for b (binary False symlink False)
131 merging b and a to b
132 my b@ef0ef43d49e7+ other a@5d205f8b35b6 ancestor a@68795b066622
133 premerge successful
134 b
136 grafting revision 5
135 grafting revision 5
137 searching for copies back to rev 1
136 searching for copies back to rev 1
138 resolving manifests
137 resolving manifests
139 overwrite: False, partial: False
138 overwrite: False, partial: False
140 ancestor: 4c60f11aa304, local: d2e44c99fd3f+, remote: 97f8bfe72746
139 ancestor: 4c60f11aa304, local: 6b9e5368ca4e+, remote: 97f8bfe72746
141 e: remote is newer -> g
140 e: remote is newer -> g
142 updating: e 1/1 files (100.00%)
141 updating: e 1/1 files (100.00%)
143 getting e
142 getting e
@@ -146,7 +145,7 b' Graft out of order, skipping a merge and'
146 searching for copies back to rev 1
145 searching for copies back to rev 1
147 resolving manifests
146 resolving manifests
148 overwrite: False, partial: False
147 overwrite: False, partial: False
149 ancestor: 4c60f11aa304, local: 839a7e8fcf80+, remote: 9c233e8e184d
148 ancestor: 4c60f11aa304, local: 1905859650ec+, remote: 9c233e8e184d
150 e: versions differ -> m
149 e: versions differ -> m
151 d: remote is newer -> g
150 d: remote is newer -> g
152 preserving e for resolve of e
151 preserving e for resolve of e
@@ -155,7 +154,7 b' Graft out of order, skipping a merge and'
155 updating: e 2/2 files (100.00%)
154 updating: e 2/2 files (100.00%)
156 picked tool 'internal:merge' for e (binary False symlink False)
155 picked tool 'internal:merge' for e (binary False symlink False)
157 merging e
156 merging e
158 my e@839a7e8fcf80+ other e@9c233e8e184d ancestor e@68795b066622
157 my e@1905859650ec+ other e@9c233e8e184d ancestor e@68795b066622
159 warning: conflicts during merge.
158 warning: conflicts during merge.
160 merging e incomplete! (edit conflicts, then use 'hg resolve --mark')
159 merging e incomplete! (edit conflicts, then use 'hg resolve --mark')
161 abort: unresolved conflicts, can't continue
160 abort: unresolved conflicts, can't continue
@@ -201,11 +200,13 b' Compare with original:'
201 View graph:
200 View graph:
202
201
203 $ hg --config extensions.graphlog= log -G --template '{author}@{rev}.{phase}: {desc}\n'
202 $ hg --config extensions.graphlog= log -G --template '{author}@{rev}.{phase}: {desc}\n'
204 @ test@10.draft: 3
203 @ test@11.draft: 3
204 |
205 o test@10.draft: 4
205 |
206 |
206 o test@9.draft: 4
207 o test@9.draft: 5
207 |
208 |
208 o test@8.draft: 5
209 o bar@8.draft: 1
209 |
210 |
210 o foo@7.draft: 2
211 o foo@7.draft: 2
211 |
212 |
@@ -233,17 +234,17 b' Graft again onto another branch should p'
233 grafting revision 7
234 grafting revision 7
234
235
235 $ hg log -r 7 --template '{rev}:{node}\n'
236 $ hg log -r 7 --template '{rev}:{node}\n'
236 7:d2e44c99fd3f31c176ea4efb9eca9f6306c81756
237 7:ef0ef43d49e79e81ddafdc7997401ba0041efc82
237 $ hg log -r 2 --template '{rev}:{node}\n'
238 $ hg log -r 2 --template '{rev}:{node}\n'
238 2:5c095ad7e90f871700f02dd1fa5012cb4498a2d4
239 2:5c095ad7e90f871700f02dd1fa5012cb4498a2d4
239
240
240 $ hg log --debug -r tip
241 $ hg log --debug -r tip
241 changeset: 12:95adbe5de6b10f376b699ece9ed5a57cd7b4b0f6
242 changeset: 13:9db0f28fd3747e92c57d015f53b5593aeec53c2d
242 tag: tip
243 tag: tip
243 phase: draft
244 phase: draft
244 parent: 11:b592ea63bb0c19a6c5c44685ee29a2284f9f1b8f
245 parent: 12:b592ea63bb0c19a6c5c44685ee29a2284f9f1b8f
245 parent: -1:0000000000000000000000000000000000000000
246 parent: -1:0000000000000000000000000000000000000000
246 manifest: 12:9944044f82a462bbaccc9bdf7e0ac5b811db7d1b
247 manifest: 13:dc313617b8c32457c0d589e0dbbedfe71f3cd637
247 user: foo
248 user: foo
248 date: Thu Jan 01 00:00:00 1970 +0000
249 date: Thu Jan 01 00:00:00 1970 +0000
249 files+: b
250 files+: b
@@ -261,7 +262,7 b' Disallow grafting an already grafted cse'
261 [255]
262 [255]
262
263
263 Disallow grafting already grafted csets with the same origin onto each other
264 Disallow grafting already grafted csets with the same origin onto each other
264 $ hg up -q 12
265 $ hg up -q 13
265 $ hg graft 2
266 $ hg graft 2
266 skipping already grafted revision 2
267 skipping already grafted revision 2
267 [255]
268 [255]
@@ -274,5 +275,5 b' Disallow grafting already grafted csets '
274 skipping already grafted revision 2
275 skipping already grafted revision 2
275 [255]
276 [255]
276 $ hg graft tip
277 $ hg graft tip
277 skipping already grafted revision 12 (same origin 2)
278 skipping already grafted revision 13 (same origin 2)
278 [255]
279 [255]
General Comments 0
You need to be logged in to leave comments. Login now