Comment 7 for bug 3918

Revision history for this message
Michael Hudson-Doyle (mwhudson) wrote : Re: bzr doesn't handle filenames with newlines

This bug -- probably with dirstate? -- is now much worse, because a commit that adds a file containing a new line will fail.

mwh@mithril-inside:foo$ ls
a?b
mwh@mithril-inside:foo$ bzr st
added:
  a
b
mwh@mithril-inside:foo$ bzr ci -m blah
added a
b
bzr: ERROR: exceptions.AssertionError:

Traceback (most recent call last):
  File "/usr/lib/python2.5/site-packages/bzrlib/commands.py", line 718, in run_bzr_catch_errors
    return run_bzr(argv)
  File "/usr/lib/python2.5/site-packages/bzrlib/commands.py", line 679, in run_bzr
    ret = run(*run_argv)
  File "/usr/lib/python2.5/site-packages/bzrlib/commands.py", line 375, in run_argv_aliases
    return self.run(**all_cmd_args)
  File "/usr/lib/python2.5/site-packages/bzrlib/builtins.py", line 2226, in run
    reporter=reporter, revprops=properties)
  File "/usr/lib/python2.5/site-packages/bzrlib/decorators.py", line 165, in write_locked
    return unbound(self, *args, **kwargs)
  File "/usr/lib/python2.5/site-packages/bzrlib/workingtree_4.py", line 245, in commit
    result = WorkingTree3.commit(self, message, revprops, *args, **kwargs)
  File "/usr/lib/python2.5/site-packages/bzrlib/decorators.py", line 165, in write_locked
    return unbound(self, *args, **kwargs)
  File "/usr/lib/python2.5/site-packages/bzrlib/mutabletree.py", line 195, in commit
    revprops=revprops, *args, **kwargs)
  File "/usr/lib/python2.5/site-packages/bzrlib/commit.py", line 311, in commit
    self.rev_id = self.builder.commit(self.message)
  File "/usr/lib/python2.5/site-packages/bzrlib/repository.py", line 1973, in commit
    self.new_inventory, self._config)
  File "/usr/lib/python2.5/site-packages/bzrlib/decorators.py", line 165, in write_locked
    return unbound(self, *args, **kwargs)
  File "/usr/lib/python2.5/site-packages/bzrlib/repository.py", line 134, in add_revision
    plaintext = Testament(rev, inv).as_short_text()
  File "/usr/lib/python2.5/site-packages/bzrlib/testament.py", line 181, in as_short_text
    % (self.revision_id, self.as_sha1()))
  File "/usr/lib/python2.5/site-packages/bzrlib/testament.py", line 198, in as_sha1
    map(s.update, self.as_text_lines())
  File "/usr/lib/python2.5/site-packages/bzrlib/testament.py", line 135, in as_text_lines
    a(self._entry_to_line(path, ie))
  File "/usr/lib/python2.5/site-packages/bzrlib/testament.py", line 168, in _entry_to_line
    l = u' %s %s %s%s%s\n' % (ie.kind, self._escape_path(path),
  File "/usr/lib/python2.5/site-packages/bzrlib/testament.py", line 149, in _escape_path
    assert not contains_linebreaks(path)
AssertionError

bzr 0.17.0 on python 2.5.1.final.0 (linux2)
arguments: ['/usr/bin/bzr', 'ci', '-m', 'blah']

** please send this report to <email address hidden>