Comment 4 for bug 495023

Revision history for this message
John A Meinel (jameinel) wrote : Re: [Bug 495023] Re: Interrupting commit to smart server sometimes removes files

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Gareth White wrote:
> It removes them from version control but leaves them in the working
> tree. It's as if you did "bzr remove --keep <some random dir>". (Or, as
> if bzr thought a directory was missing on disk when it wasn't and
> therefore it decided to remove it during the commit.)
>
> It can be reproduced by doing a commit that doesn't (shouldn't) change
> anything, as in the original description.
>
> I've also managed to reproduce it on my OS X machine now as well. The two important factors are that:
> 1. The branch has a lot of files and directories in it (e.g. 10000 files, 1000 dirs). I reproduced it by putting 10 copies of the bzr source into the same branch.
> 2. You need to interrupt it at the correct time. This is sometime after it says "Committing to:", but *before* it displays the progress bar.
>If you try this a few times you'll see the message about
"KeyboardInterrupt in 'bzrlib._dirstate_helpers_pyx".
>Repeat a few more times and eventually you'll see it remove a directory
of files.

^- This specifically sounds like we are suppressing the exception
somewhere, and we shouldn't be. And so we end up not processing a
directory because of the exception, but the calling code isn't
propagating the exception and so it keeps going even though we've
omitted a dir.

Do you have any more context for this?

John
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAksw7IEACgkQJdeBCYSNAANxMQCg1IxbEHCx4P0k5siWM8FmYQrk
Dx8An3Tep/zP7SeFHrGtP5/Ad4E4NmdU
=L4vH
-----END PGP SIGNATURE-----