bzr merge fails on control characters in filenames
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Invalid
|
Undecided
|
Unassigned |
Bug Description
I'm seeing a merge failure under bzr 1.17 (on linux), which I'm guessing is due to weird characters in filenames.
I've got a feature branch I'm trying to merge to mainline, so it's all committed fine, and 'bzr missing' works, but the merge fails:
nox:~
bzr: ERROR: not well-formed (invalid token): line 90, column 81
bzr st then shows no changes.
The feature branch is testing escaping of weird filename characters, which I suspect is the cause of the problem. The unit test data directory looks like:
nox:~
t/data_
|-- 000-dup1.txt
|-- 000-dup2.txt
|-- filename^Lformfeed
|-- filename^
|-- filename whitespace
|-- filename_ctrl_c^C
|-- filename_newline
|-- filename_tab
|-- huge-file.txt
|-- my-link.txt -> test-file.txt
`-- my_^Ldir
`-- sub_dir
|-- another-file.txt
`-- program.sh
where those are real control characters in the filenames (yes, not something you'd normally do!), and adding this data seems to be what's causing the problem (I've merged all the previous revisions fine).
Trackback is:
Fri 2009-07-31 18:13:01 +1000
0.017 bzr arguments: [u'merge', u'-r50', u'../escape']
0.035 looking for plugins in /home/gavin/
0.035 looking for plugins in /usr/lib/
0.154 opening working tree '/home/
0.195 Using fetch logic to copy between KnitPackReposit
0.195 fetch up to rev {<email address hidden>}
0.266 Traceback (most recent call last):
File "/usr/lib/
return the_callable(*args, **kwargs)
File "/usr/lib/
ret = run(*run_argv)
File "/usr/lib/
return self.run(
File "/usr/lib/
location, revision, remember, possible_
File "/usr/lib/
other_
File "/usr/lib/
merger.
File "/usr/lib/
self.other_tree = self.revision_
File "/usr/lib/
tree = branch.
File "/usr/lib/
result = unbound(self, *args, **kwargs)
File "/usr/lib/
inv = self.get_
File "/usr/lib/
result = unbound(self, *args, **kwargs)
File "/usr/lib/
return self.get_
File "/usr/lib/
result = unbound(self, *args, **kwargs)
File "/usr/lib/
return self.iter_
File "/usr/lib/
yield self.deserialis
File "/usr/lib/
entry_
File "/usr/lib/
raise errors.
UnexpectedInven
0.267 return code 3
FWIW, Martin asked me to see if I could replicate this on a 2a format branch, and the problem doesn't seem to appear there at all.