[Bug 4357] New: hg merge erroneously renames files renamed in unrelated branch
mercurial-bugs at selenic.com
mercurial-bugs at selenic.com
Sat Sep 6 05:44:58 UTC 2014
http://bz.selenic.com/show_bug.cgi?id=4357
Priority: normal
Bug ID: 4357
CC: mercurial-devel at selenic.com
Assignee: bugzilla at selenic.com
Summary: hg merge erroneously renames files renamed in
unrelated branch
Severity: bug
Classification: Unclassified
OS: Mac OS
Reporter: mail_ben_schmidt at yahoo.com.au
Hardware: Macintosh
Status: UNCONFIRMED
Version: 3.1
Component: Mercurial
Product: Mercurial
Created attachment 1786
--> http://bz.selenic.com/attachment.cgi?id=1786&action=edit
Script I used to produce the description
I originally encountered this with named branches, but tried to reduce to a
more minimal case, and came up with this:
Create repository
$ hg init
Create and commit vendor/one
$ mkdir vendor
$ hg add vendor/one
$ hg commit -m "add vendor/one"
Create and commit vendor/two on independent branch
$ hg up null
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ mkdir vendor
$ hg add vendor/two
$ hg commit -m "add vendor/two"
created new head
Merge to create main branch
$ hg up 0
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg merge 1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg commit -m merge
Move vendor/one to dir/vendor/one on its branch
$ hg up 0
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ ls
vendor
$ ls vendor
one
$ hg mv vendor dir/vendor
moving vendor/one to dir/vendor/one
$ hg commit -m "move vendor/one to dir/vendor/one"
created new head
Move vendor/two to dir/vendor/two on its branch
$ hg up 1
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ ls
vendor
$ ls vendor
two
$ hg mv vendor dir/vendor
moving vendor/two to dir/vendor/two
$ hg commit -m "move vendor/two to dir/vendor/two"
created new head
Update to main branch and merge branch which moved one
$ hg up 2
2 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ ls
vendor
$ ls vendor
one
two
$ hg merge 3
2 files updated, 0 files merged, 1 files removed, 0 files unresolved
(branch merge, don't forget to commit)
Why has two also moved?! It was not moved in either parent
$ ls
dir
$ ls dir
vendor
$ hg st
M dir/vendor/one
A dir/vendor/two
R vendor/one
R vendor/two
$ hg log --graph
o changeset: 4:9ec94b076964
| tag: tip
| parent: 1:40d445dfec7a
| user: Ben Schmidt
| date: Sat Sep 06 15:41:37 2014 +1000
| summary: move vendor/two to dir/vendor/two
|
| @ changeset: 3:beaba0ec239b
| | parent: 0:de1e05afafaa
| | user: Ben Schmidt
| | date: Sat Sep 06 15:41:37 2014 +1000
| | summary: move vendor/one to dir/vendor/one
| |
+---@ changeset: 2:173ffb794ecd
| |/ parent: 0:de1e05afafaa
| | parent: 1:40d445dfec7a
| | user: Ben Schmidt
| | date: Sat Sep 06 15:41:37 2014 +1000
| | summary: merge
| |
o | changeset: 1:40d445dfec7a
/ parent: -1:000000000000
| user: Ben Schmidt
| date: Sat Sep 06 15:41:36 2014 +1000
| summary: add vendor/two
|
o changeset: 0:de1e05afafaa
user: Ben Schmidt
date: Sat Sep 06 15:41:36 2014 +1000
summary: add vendor/one
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Mercurial-devel
mailing list