##// END OF EJS Templates
merge: fix renaming of subdirectories under renamed directories
Matt Mackall -
r4115:c95060a5 default
parent child Browse files
Show More
@@ -0,0 +1,28 b''
1 #!/bin/sh
2
3 mkdir r1
4 cd r1
5 hg init
6 mkdir a
7 echo foo > a/f
8 hg add a
9 hg ci -m "a/f == foo"
10 cd ..
11
12 hg clone r1 r2
13 cd r2
14 hg mv a b
15 echo foo1 > b/f
16 hg ci -m" a -> b, b/f == foo1"
17 cd ..
18
19 cd r1
20 mkdir a/aa
21 echo bar > a/aa/g
22 hg add a/aa
23 hg ci -m "a/aa/g"
24 hg pull ../r2
25
26 hg merge
27
28 hg st -C
@@ -0,0 +1,19 b''
1 adding a/f
2 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
3 copying a/f to b/f
4 removing a/f
5 adding a/aa/g
6 pulling from ../r2
7 searching for changes
8 adding changesets
9 adding manifests
10 adding file changes
11 added 1 changesets with 1 changes to 1 files (+1 heads)
12 (run 'hg heads' to see heads, 'hg merge' to merge)
13 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
14 (branch merge, don't forget to commit)
15 M b/f
16 A b/aa/g
17 a/aa/g
18 R a/aa/g
19 R a/f
@@ -184,7 +184,7 b' def findcopies(repo, m1, m2, ma, limit):'
184 invalid[dsrc] = True
184 invalid[dsrc] = True
185 del dirmove[dsrc]
185 del dirmove[dsrc]
186 else:
186 else:
187 dirmove[dsrc] = ddst
187 dirmove[dsrc + "/"] = ddst + "/"
188
188
189 del d1, d2, invalid
189 del d1, d2, invalid
190
190
@@ -194,9 +194,10 b' def findcopies(repo, m1, m2, ma, limit):'
194 # check unaccounted nonoverlapping files
194 # check unaccounted nonoverlapping files
195 for f in u1 + u2:
195 for f in u1 + u2:
196 if f not in fullcopy:
196 if f not in fullcopy:
197 d = os.path.dirname(f)
197 for d in dirmove:
198 if d in dirmove:
198 if f.startswith(d):
199 copy[f] = dirmove[d] + "/" + os.path.basename(f)
199 copy[f] = dirmove[d] + f[len(d):]
200 break
200
201
201 return copy
202 return copy
202
203
General Comments 0
You need to be logged in to leave comments. Login now