mirror of
https://github.com/facebook/sapling.git
synced 2024-10-16 19:57:18 +03:00
3e592b81ae
Summary: When you get an error, let's print the number of conflicts in each file. This will give the user some sense of how much work they have to do. The code change is entirely in `filemerge.py`, and `tests/test-merge-conflict-count.t` adds a new test. Reviewed By: quark-zju Differential Revision: D9815243 fbshipit-source-id: 1b73a1db293902ac7242997a7d6ae09478344068
154 lines
3.4 KiB
Perl
154 lines
3.4 KiB
Perl
$ . helpers-usechg.sh
|
|
|
|
$ hg init
|
|
|
|
Revision 0:
|
|
|
|
$ echo "unchanged" > unchanged
|
|
$ echo "remove me" > remove
|
|
$ echo "copy me" > copy
|
|
$ echo "move me" > move
|
|
$ for i in 1 2 3 4 5 6 7 8 9; do
|
|
> echo "merge ok $i" >> zzz1_merge_ok
|
|
> done
|
|
$ echo "merge bad" > zzz2_merge_bad
|
|
$ hg ci -Am "revision 0"
|
|
adding copy
|
|
adding move
|
|
adding remove
|
|
adding unchanged
|
|
adding zzz1_merge_ok
|
|
adding zzz2_merge_bad
|
|
|
|
Revision 1:
|
|
|
|
$ hg rm remove
|
|
$ hg mv move moved
|
|
$ hg cp copy copied
|
|
$ echo "added" > added
|
|
$ hg add added
|
|
$ echo "new first line" > zzz1_merge_ok
|
|
$ hg cat zzz1_merge_ok >> zzz1_merge_ok
|
|
$ echo "new last line" >> zzz2_merge_bad
|
|
$ hg ci -m "revision 1"
|
|
|
|
Local changes to revision 0:
|
|
|
|
$ hg co 0
|
|
4 files updated, 0 files merged, 3 files removed, 0 files unresolved
|
|
$ echo "new last line" >> zzz1_merge_ok
|
|
$ echo "another last line" >> zzz2_merge_bad
|
|
|
|
$ hg diff --nodates | grep "^[+-][^<>]"
|
|
--- a/zzz1_merge_ok
|
|
+++ b/zzz1_merge_ok
|
|
+new last line
|
|
--- a/zzz2_merge_bad
|
|
+++ b/zzz2_merge_bad
|
|
+another last line
|
|
|
|
$ hg st
|
|
M zzz1_merge_ok
|
|
M zzz2_merge_bad
|
|
|
|
Local merge with bad merge tool:
|
|
|
|
$ HGMERGE=false hg co
|
|
merging zzz1_merge_ok
|
|
merging zzz2_merge_bad
|
|
merging zzz2_merge_bad failed!
|
|
3 files updated, 1 files merged, 2 files removed, 1 files unresolved
|
|
use 'hg resolve' to retry unresolved file merges
|
|
[1]
|
|
|
|
$ hg resolve -m
|
|
(no more unresolved files)
|
|
|
|
$ hg co 0
|
|
merging zzz1_merge_ok
|
|
merging zzz2_merge_bad
|
|
warning: 1 conflicts while merging zzz2_merge_bad! (edit, then use 'hg resolve --mark')
|
|
2 files updated, 1 files merged, 3 files removed, 1 files unresolved
|
|
use 'hg resolve' to retry unresolved file merges
|
|
[1]
|
|
|
|
$ hg diff --nodates | grep "^[+-][^<>]"
|
|
--- a/zzz1_merge_ok
|
|
+++ b/zzz1_merge_ok
|
|
+new last line
|
|
--- a/zzz2_merge_bad
|
|
+++ b/zzz2_merge_bad
|
|
+another last line
|
|
+=======
|
|
|
|
$ hg st
|
|
M zzz1_merge_ok
|
|
M zzz2_merge_bad
|
|
? zzz2_merge_bad.orig
|
|
|
|
Local merge with conflicts:
|
|
|
|
$ hg resolve -m
|
|
(no more unresolved files)
|
|
|
|
$ hg co
|
|
merging zzz1_merge_ok
|
|
merging zzz2_merge_bad
|
|
warning: 1 conflicts while merging zzz2_merge_bad! (edit, then use 'hg resolve --mark')
|
|
3 files updated, 1 files merged, 2 files removed, 1 files unresolved
|
|
use 'hg resolve' to retry unresolved file merges
|
|
[1]
|
|
|
|
$ hg resolve -m
|
|
(no more unresolved files)
|
|
|
|
$ hg co 0 --config 'ui.origbackuppath=.hg/origbackups'
|
|
merging zzz1_merge_ok
|
|
merging zzz2_merge_bad
|
|
warning: 1 conflicts while merging zzz2_merge_bad! (edit, then use 'hg resolve --mark')
|
|
2 files updated, 1 files merged, 3 files removed, 1 files unresolved
|
|
use 'hg resolve' to retry unresolved file merges
|
|
[1]
|
|
|
|
Are orig files from the last commit where we want them?
|
|
$ ls .hg/origbackups
|
|
zzz2_merge_bad
|
|
|
|
$ hg diff --nodates | grep "^[+-][^<>]"
|
|
--- a/zzz1_merge_ok
|
|
+++ b/zzz1_merge_ok
|
|
+new last line
|
|
--- a/zzz2_merge_bad
|
|
+++ b/zzz2_merge_bad
|
|
+another last line
|
|
+=======
|
|
+=======
|
|
+new last line
|
|
+=======
|
|
|
|
$ hg st
|
|
M zzz1_merge_ok
|
|
M zzz2_merge_bad
|
|
? zzz2_merge_bad.orig
|
|
|
|
Local merge without conflicts:
|
|
|
|
$ hg revert zzz2_merge_bad
|
|
|
|
$ hg resolve -m
|
|
(no more unresolved files)
|
|
|
|
$ hg co
|
|
merging zzz1_merge_ok
|
|
4 files updated, 1 files merged, 2 files removed, 0 files unresolved
|
|
|
|
$ hg diff --nodates | grep "^[+-][^<>]"
|
|
--- a/zzz1_merge_ok
|
|
+++ b/zzz1_merge_ok
|
|
+new last line
|
|
|
|
$ hg st
|
|
M zzz1_merge_ok
|
|
? zzz2_merge_bad.orig
|
|
|