merge: report all files in _checkunknown
When doing hg up, if there is a file conflict with untracked files,
currently only the first such conflict is reported. With this patch,
all of them are listed.
With this patch error message is now reported as
a: untracked file differs
b: untracked file differs
abort: untracked files in working directory conflict with files in
requested revision
instead of
abort: untracked file in working directory differs from file in
requested revision: 'a'
This is a follow up to an old attempt to do this here:
http://selenic.com/pipermail/mercurial-devel/2011-August/033625.html
$ echo "[extensions]" >> $HGRCPATH
$ echo "largefiles =" >> $HGRCPATH
Create the repository outside $HOME since largefiles write to
$HOME/.cache/largefiles.
$ hg init test
$ cd test
$ echo "root" > root
$ hg add root
$ hg commit -m "Root commit"
$ echo "large" > foo
$ hg add --large foo
$ hg commit -m "Add foo as a largefile"
$ hg update -r 0
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
getting changed largefiles
0 largefiles updated, 1 removed
$ echo "normal" > foo
$ hg add foo
$ hg commit -m "Add foo as normal file"
created new head
Normal file in the working copy, keeping the normal version:
$ echo "n" | hg merge --config ui.interactive=Yes
foo has been turned into a largefile
use (l)argefile or keep as (n)ormal file? 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg status
$ cat foo
normal
Normal file in the working copy, keeping the largefile version:
$ hg update -q -C
$ echo "l" | hg merge --config ui.interactive=Yes
foo has been turned into a largefile
use (l)argefile or keep as (n)ormal file? 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
(branch merge, don't forget to commit)
getting changed largefiles
1 largefiles updated, 0 removed
$ hg status
M foo
$ hg diff --nodates
diff -r fa129ab6b5a7 .hglf/foo
--- /dev/null
+++ b/.hglf/foo
@@ -0,0 +1,1 @@
+7f7097b041ccf68cc5561e9600da4655d21c6d18
diff -r fa129ab6b5a7 foo
--- a/foo
+++ /dev/null
@@ -1,1 +0,0 @@
-normal
$ cat foo
large
Largefile in the working copy, keeping the normal version:
$ hg update -q -C -r 1
$ echo "n" | hg merge --config ui.interactive=Yes
foo has been turned into a normal file
keep as (l)argefile or use (n)ormal file? 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
(branch merge, don't forget to commit)
getting changed largefiles
0 largefiles updated, 0 removed
$ hg status
M foo
$ hg diff --nodates
diff -r ff521236428a .hglf/foo
--- a/.hglf/foo
+++ /dev/null
@@ -1,1 +0,0 @@
-7f7097b041ccf68cc5561e9600da4655d21c6d18
diff -r ff521236428a foo
--- /dev/null
+++ b/foo
@@ -0,0 +1,1 @@
+normal
$ cat foo
normal
Largefile in the working copy, keeping the largefile version:
$ hg update -q -C -r 1
$ echo "l" | hg merge --config ui.interactive=Yes
foo has been turned into a normal file
keep as (l)argefile or use (n)ormal file? 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
(branch merge, don't forget to commit)
getting changed largefiles
1 largefiles updated, 0 removed
$ hg status
$ cat foo
large