Missing file reported after resolved removal conflict
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Confirmed
|
High
|
Unassigned | ||
Breezy |
Triaged
|
High
|
Unassigned |
Bug Description
When updating a bound branch, and a file was removed in the master branch but modified in the working tree, a conflict occurs. When the conflict is resolved in such a way that the file is removed from the working tree as well, that file will be reported missing by bzr status, even if there was an update in between. Surprisingly, the actual file name reported missing will depend on the resolution method: --take-other will report the base name, but manual removal will cause the *.THIS file to be reported missing. I know of no way to actually resolve this spurious message from bzr status, which can be annoying on life projects.
Steps to reproduce, should make an easy blackbox test script (or rather two, I guess):
$ bzr init -q trunk
$ echo original > trunk/foo
$ bzr add -q trunk/foo
$ bzr commit -q -m first trunk
$ bzr checkout -q trunk one
$ bzr checkout -q trunk two
$ bzr rm -q trunk/foo
$ bzr ignore -d trunk foo
$ bzr commit -q -m second trunk
$ echo modified > one/foo
$ bzr update one
+N .bzrignore
RM foo => foo.THIS
Contents conflict in foo
1 conflicts encountered.
Updated to revision 2 of branch ${PWD}/trunk
$ rm one/foo.BASE one/foo.THIS
$ bzr resolve --all -d one
1 conflict(s) resolved, 0 remaining
$ bzr conflicts -d one
$ bzr status one
missing:
foo.THIS
$ bzr update one
Tree is up to date at revision 2 of branch ${PWD}/trunk
$ bzr status one
missing:
foo.THIS
$ echo modified > two/foo
$ bzr update two
+N .bzrignore
RM foo => foo.THIS
Contents conflict in foo
1 conflicts encountered.
Updated to revision 2 of branch ${PWD}/trunk
$ bzr resolve --take-other --all -d two
1 conflict(s) resolved, 0 remaining
$ bzr status two
missing:
foo
Related branches
- Martin Packman: Approve
-
Diff: 76 lines (+59/-1)1 file modifiedbreezy/tests/blackbox/test_resolve.py (+59/-1)
tags: | added: check-for-breezy |
Changed in brz: | |
status: | New → Triaged |
importance: | Undecided → High |
tags: | removed: check-for-breezy |
Attached branch has test scripts exposing this issue. I don't intend to continue work on the actual issue itself any time soon, so if someone else does, please consider using that branch as a basis, and take it from there.