##// END OF EJS Templates
patch: support diff data loss detection and upgrade...
patch: support diff data loss detection and upgrade In worst case, generating diff in upgrade mode can be two times more expensive than generating it in git mode directly: we may have to regenerate the whole diff again whenever a git feature is detected. Also, the first diff attempt is completely buffered instead of being streamed. That said, even without having profiled it yet, I am convinced we can fast-path the upgrade mode if necessary were it to be used in regular diff commands, and not only in mq where avoiding data loss is worth the price.

File last commit:

r8753:af5f099d default
r10189:e451e599 default
Show More
test-rename-dir-merge.out
75 lines | 1.8 KiB | text/plain | TextLexer
/ tests / test-rename-dir-merge.out
adding a/a
adding a/b
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
moving a/a to b/a
moving a/b to b/b
2 files updated, 0 files merged, 2 files removed, 0 files unresolved
created new head
searching for copies back to rev 1
unmatched files in local:
a/c
a/d
unmatched files in other:
b/a
b/b
all copies found (* = to merge, ! = divergent):
b/a -> a/a
b/b -> a/b
checking for directory renames
dir a/ -> b/
file a/c -> b/c
file a/d -> b/d
resolving manifests
overwrite None partial False
ancestor f9b20c0d4c51 local ce36d17b18fb+ remote 55119e611c80
a/d: remote renamed directory to b/d -> d
a/c: remote renamed directory to b/c -> d
a/b: other deleted -> r
a/a: other deleted -> r
b/a: remote created -> g
b/b: remote created -> g
removing a/a
removing a/b
moving a/c to b/c
moving a/d to b/d
getting b/a
getting b/b
4 files updated, 0 files merged, 2 files removed, 0 files unresolved
(branch merge, don't forget to commit)
a/* b/a b/b b/c b/d
M b/a
M b/b
A b/c
a/c
R a/a
R a/b
R a/c
? b/d
b/c renamed from a/c:354ae8da6e890359ef49ade27b68bbc361f3ca88
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
searching for copies back to rev 1
unmatched files in local:
b/a
b/b
b/d
unmatched files in other:
a/c
all copies found (* = to merge, ! = divergent):
b/a -> a/a
b/b -> a/b
checking for directory renames
dir a/ -> b/
file a/c -> b/c
resolving manifests
overwrite None partial False
ancestor f9b20c0d4c51 local 55119e611c80+ remote ce36d17b18fb
None: local renamed directory to b/c -> d
getting a/c to b/c
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
a/* b/a b/b b/c b/d
A b/c
a/c
? b/d
created new head
b/c renamed from a/c:354ae8da6e890359ef49ade27b68bbc361f3ca88