'bzr annotate file.OTHER' during contents conflict gives traceback
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Fix Released
|
Medium
|
Robert Collins |
Bug Description
If I modify 'file' in branch_a and delete 'file' in branch_b, then go to branch_b and merge, it gives me 'file.BASE' and 'file.OTHER'. Then, if I run 'bzr annotate file.OTHER', it crashes with a stacktrace.
######## BEGIN SCRIPT TO REPRODUCE ########
echo ==== system info ====
bzr version
echo ==== init ===
rm -rf test-area
mkdir test-area
cd test-area
mkdir a
cd a
bzr init
echo ==== first version of foo ===
echo 1 > foo
bzr add foo
bzr commit -m 'first version of foo'
echo ==== create branch b ===
cd ..
bzr branch a b
echo ==== modify foo in a ===
cd a
echo 2 >> foo
bzr commit -m 'second version of foo'
echo ==== remove foo in b ===
cd ../b
bzr rm foo
bzr commit -m 'removed foo'
echo ==== merge ====
bzr merge ../a
ls
echo ==== annotating foo ====
bzr annotate foo
echo ==== annotating foo.OTHER ====
bzr annotate foo.OTHER
######## END SCRIPT TO REPRODUCE ########
######## BEGIN OUTPUT OF SCRIPT ########
==== system info ====
Bazaar (bzr) 1.5
Python interpreter: /usr/bin/python 2.5.2
Python standard library: /usr/lib/python2.5
bzrlib: /usr/lib/
Bazaar configuration: /home/sven/.bazaar
Bazaar log file: /home/sven/.bzr.log
Copyright 2005, 2006, 2007, 2008 Canonical Ltd.
http://
bzr comes with ABSOLUTELY NO WARRANTY. bzr is free software, and
you may use, modify and redistribute it under the terms of the GNU
General Public License version 2 or later.
==== init ===
==== first version of foo ===
added foo
Committing to: /home/sven/
added foo
Committed revision 1.
==== create branch b ===
Branched 1 revision(s).
==== modify foo in a ===
Committing to: /home/sven/
modified foo
Committed revision 2.
==== remove foo in b ===
deleted foo
Committing to: /home/sven/
deleted foo
Committed revision 2.
==== merge ====
+N foo.OTHER
Contents conflict in foo
1 conflicts encountered.
foo.BASE foo.OTHER
==== annotating foo ====
bzr: ERROR: foo is not versioned.
==== annotating foo.OTHER ====
bzr: ERROR: The file id "foo-2008070812
######## END OUTPUT OF SCRIPT ########
######## BEGIN ~/.bzr.log ########
0.231 encoding stdout as sys.stdout encoding 'UTF-8'
0.231 bzr arguments: [u'annotate', u'foo.OTHER']
0.231 looking for plugins in /home/sven/
0.393 looking for plugins in /usr/lib/
0.393 Plugin name __init__ already loaded
0.393 Plugin name bzrtools already loaded
0.393 Plugin name __init__ already loaded
0.547 opening working tree '/home/
0.601 Traceback (most recent call last):
File "/usr/lib/
return run_bzr(argv)
File "/usr/lib/
ret = run(*run_argv)
File "/usr/lib/
return self.run(
File "/usr/lib/
result = func(*args, **kwargs)
File "/usr/lib/
file_version = tree.inventory[
File "/usr/lib/
raise errors.
NoSuchId: The file id "foo-2008070812
0.602 return code 3
######## END ~/.bzr.log ########
Hi,
Thanks for the test script, I can reproduce easily, and it's half way
to a test case.
This will either be really easy to fix, or pretty tricky. Hopefully the
former.
Thanks,
James