mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 00:14:35 +03:00
2187fcb2bb
When using "hg update" to update to a revision on another branch, if the user has uncommitted changes in the working directory, hg aborts with the following message: abort: crosses branches (use 'hg merge' to merge or use 'hg update -C' to discard changes) If the user isn't trying to update to tip and they follow the command examples verbatim, they would end up updating to the wrong revision. This patch removes the command examples in favor of just telling the user to either merge or use --clean: abort: crosses branches (merge branches or use --clean to discard changes) hg also aborts if the user tries to use "hg update" to get to tip (without specifying a revision) and tip is on another branch: abort: crosses branches (use 'hg merge' or use 'hg update -c') This message is changed in the same fashion: abort: crosses branches (merge branches or use --check to force update)
236 lines
5.5 KiB
Perl
236 lines
5.5 KiB
Perl
$ HGMERGE=true; export HGMERGE
|
|
|
|
$ mkdir r1
|
|
$ cd r1
|
|
$ hg init
|
|
$ echo a > a
|
|
$ hg addremove
|
|
adding a
|
|
$ hg commit -m "1"
|
|
|
|
$ hg clone . ../r2
|
|
updating to branch default
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ cd ../r2
|
|
$ hg up
|
|
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ echo abc > a
|
|
$ hg diff --nodates
|
|
diff -r c19d34741b0a a
|
|
--- a/a
|
|
+++ b/a
|
|
@@ -1,1 +1,1 @@
|
|
-a
|
|
+abc
|
|
|
|
$ cd ../r1
|
|
$ echo b > b
|
|
$ echo a2 > a
|
|
$ hg addremove
|
|
adding b
|
|
$ hg commit -m "2"
|
|
|
|
$ cd ../r2
|
|
$ hg -q pull ../r1
|
|
$ hg status
|
|
M a
|
|
$ hg parents
|
|
changeset: 0:c19d34741b0a
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: 1
|
|
|
|
$ hg --debug up
|
|
searching for copies back to rev 1
|
|
unmatched files in other:
|
|
b
|
|
resolving manifests
|
|
overwrite False partial False
|
|
ancestor c19d34741b0a local c19d34741b0a+ remote 1e71731e6fbb
|
|
a: versions differ -> m
|
|
b: remote created -> g
|
|
preserving a for resolve of a
|
|
updating: a 1/2 files (50.00%)
|
|
picked tool 'true' for a (binary False symlink False)
|
|
merging a
|
|
my a@c19d34741b0a+ other a@1e71731e6fbb ancestor a@c19d34741b0a
|
|
updating: b 2/2 files (100.00%)
|
|
getting b
|
|
1 files updated, 1 files merged, 0 files removed, 0 files unresolved
|
|
$ hg parents
|
|
changeset: 1:1e71731e6fbb
|
|
tag: tip
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: 2
|
|
|
|
$ hg --debug up 0
|
|
resolving manifests
|
|
overwrite False partial False
|
|
ancestor 1e71731e6fbb local 1e71731e6fbb+ remote c19d34741b0a
|
|
a: versions differ -> m
|
|
b: other deleted -> r
|
|
preserving a for resolve of a
|
|
updating: b 1/2 files (50.00%)
|
|
removing b
|
|
updating: a 2/2 files (100.00%)
|
|
picked tool 'true' for a (binary False symlink False)
|
|
merging a
|
|
my a@1e71731e6fbb+ other a@c19d34741b0a ancestor a@1e71731e6fbb
|
|
0 files updated, 1 files merged, 1 files removed, 0 files unresolved
|
|
$ hg parents
|
|
changeset: 0:c19d34741b0a
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: 1
|
|
|
|
$ hg --debug merge
|
|
abort: there is nothing to merge - use "hg update" instead
|
|
[255]
|
|
$ hg parents
|
|
changeset: 0:c19d34741b0a
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: 1
|
|
|
|
$ hg --debug up
|
|
searching for copies back to rev 1
|
|
unmatched files in other:
|
|
b
|
|
resolving manifests
|
|
overwrite False partial False
|
|
ancestor c19d34741b0a local c19d34741b0a+ remote 1e71731e6fbb
|
|
a: versions differ -> m
|
|
b: remote created -> g
|
|
preserving a for resolve of a
|
|
updating: a 1/2 files (50.00%)
|
|
picked tool 'true' for a (binary False symlink False)
|
|
merging a
|
|
my a@c19d34741b0a+ other a@1e71731e6fbb ancestor a@c19d34741b0a
|
|
updating: b 2/2 files (100.00%)
|
|
getting b
|
|
1 files updated, 1 files merged, 0 files removed, 0 files unresolved
|
|
$ hg parents
|
|
changeset: 1:1e71731e6fbb
|
|
tag: tip
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: 2
|
|
|
|
$ hg -v history
|
|
changeset: 1:1e71731e6fbb
|
|
tag: tip
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
files: a b
|
|
description:
|
|
2
|
|
|
|
|
|
changeset: 0:c19d34741b0a
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
files: a
|
|
description:
|
|
1
|
|
|
|
|
|
$ hg diff --nodates
|
|
diff -r 1e71731e6fbb a
|
|
--- a/a
|
|
+++ b/a
|
|
@@ -1,1 +1,1 @@
|
|
-a2
|
|
+abc
|
|
|
|
|
|
create a second head
|
|
|
|
$ cd ../r1
|
|
$ hg up 0
|
|
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
|
|
$ echo b2 > b
|
|
$ echo a3 > a
|
|
$ hg addremove
|
|
adding b
|
|
$ hg commit -m "3"
|
|
created new head
|
|
|
|
$ cd ../r2
|
|
$ hg -q pull ../r1
|
|
$ hg status
|
|
M a
|
|
$ hg parents
|
|
changeset: 1:1e71731e6fbb
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: 2
|
|
|
|
$ hg --debug up
|
|
abort: crosses branches (merge branches or use --clean to discard changes)
|
|
[255]
|
|
$ hg --debug merge
|
|
abort: outstanding uncommitted changes (use 'hg status' to list changes)
|
|
[255]
|
|
$ hg --debug merge -f
|
|
searching for copies back to rev 1
|
|
resolving manifests
|
|
overwrite False partial False
|
|
ancestor c19d34741b0a local 1e71731e6fbb+ remote 83c51d0caff4
|
|
a: versions differ -> m
|
|
b: versions differ -> m
|
|
preserving a for resolve of a
|
|
preserving b for resolve of b
|
|
updating: a 1/2 files (50.00%)
|
|
picked tool 'true' for a (binary False symlink False)
|
|
merging a
|
|
my a@1e71731e6fbb+ other a@83c51d0caff4 ancestor a@c19d34741b0a
|
|
updating: b 2/2 files (100.00%)
|
|
picked tool 'true' for b (binary False symlink False)
|
|
merging b
|
|
my b@1e71731e6fbb+ other b@83c51d0caff4 ancestor b@000000000000
|
|
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
|
|
(branch merge, don't forget to commit)
|
|
$ hg parents
|
|
changeset: 1:1e71731e6fbb
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: 2
|
|
|
|
changeset: 2:83c51d0caff4
|
|
tag: tip
|
|
parent: 0:c19d34741b0a
|
|
user: test
|
|
date: Thu Jan 01 00:00:00 1970 +0000
|
|
summary: 3
|
|
|
|
$ hg diff --nodates
|
|
diff -r 1e71731e6fbb a
|
|
--- a/a
|
|
+++ b/a
|
|
@@ -1,1 +1,1 @@
|
|
-a2
|
|
+abc
|
|
|
|
|
|
test a local add
|
|
|
|
$ cd ..
|
|
$ hg init a
|
|
$ hg init b
|
|
$ echo a > a/a
|
|
$ echo a > b/a
|
|
$ hg --cwd a commit -A -m a
|
|
adding a
|
|
$ cd b
|
|
$ hg add a
|
|
$ hg pull -u ../a
|
|
pulling from ../a
|
|
requesting all changes
|
|
adding changesets
|
|
adding manifests
|
|
adding file changes
|
|
added 1 changesets with 1 changes to 1 files
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ hg st
|