Weird failure of a merge to local branch

Eli Zaretskii eliz at gnu.org
Sat Dec 4 10:13:48 GMT 2010


Merging from a bound branch to one of my local branches failed with an
error message I never saw before:

  bzr: ERROR: [Error 5] Access is denied: u'D:/gnu/bzr/emacs/djgpp/.bzr/checkout/pending-deletion\\new-105'

This branch exists for almost a year, and I merge from it and into it
almost every week, without any problems till now.  The full
information from .bzr.log is at the end of this message.

Running "bzr status" after the failed merge says:

  working tree is out of date, run 'bzr update'

and proceeds to show a long list of removed and modified files.

This is bzr 2.2.1 on Windows XP, with the changelog_merge plugin in
effect for both the bound branch and the local branch.  (The new-105
file is not a ChangeLog, so I'm not sure the changelog_merge plugin is
the culprit.)

The instructions in .bzr.log, viz.:

  ImmortalPendingDeletion: Unable to delete transform temporary directory D:/gnu/bzr/emacs/djgpp/.bzr/checkout/pending-deletion.  Please examine D:/gnu/bzr/emacs/djgpp/.bzr/checkout/pending-deletion to see if it contains any files you wish to keep, and delete it when you are done.

are not very clear.  The said directory has 105 files named new-1 to
new-105, without any clue to their real file names except the
contents.  There's nothing special about new-105, wrt its access
rights, it doesn't have the read-only bit set and its owner is myself.
So I don't understand why bzr failed to delete it.  (Or is the fact
that its name appears in the error message just the artifact of the
failure, and has something to do with the fact that it's the last one
in the list?)

The instructions are also very unclear what to do about the "files I
wish to keep": copy them to their place in the tree replacing their
current versions? do something else?  And what to do after I delete
that directory?

I'm not sure how to proceed.  I thought about several possibilities:

 . Try "bzr merge" again, perhaps the problem was transient (if I do
   this, do I need to remove the pending-deletion directory first?)
 . Disable the changelog_merge plugin and try "bzr merge" again (same
   question as above)
 . Revert to the revision before the merge, and try "bzr merge" again
   (same question)
 . Try "bzr pull --overwrite" from the parent (this branch has no
   local changes, verified just before the failed merge)
 . Delete the entire pending-deletion directory, compare with the
   parent branch, and take it from there (manually copying files if
   necessary)

Any ideas/suggestions/advice will be highly appreciated.

Here's what I have in .bzr.log:

  Sat 2010-12-04 11:36:53 +0200
  0.125  bazaar version: 2.2.1
  0.125  bzr arguments: [u'merge', u'--pull']
  0.141  looking for plugins in C:/Documents and Settings/Zaretzky/Application Data/bazaar/2.0/plugins
  0.157  looking for plugins in D:/usr/Bazaar/plugins
  0.547  encoding stdout as sys.stdout encoding 'cp1252'
  0.625  opening working tree 'D:/gnu/bzr/emacs/djgpp'
  0.828  file:///D:/gnu/bzr/emacs/trunk/
  [ 5108] 2010-12-04 11:36:53.921 INFO: Merging from remembered parent location D:/gnu/bzr/emacs/trunk/
  1.719  Base revid: 'eliz at gnu.org-20101126183840-k65v5jvyq6d933j8'
  21.094  Cleanup failed:
  21.094  Traceback (most recent call last):
    File "bzrlib\cleanup.pyo", line 66, in _run_cleanup
    File "bzrlib\transform.pyo", line 1136, in finalize
  ImmortalPendingDeletion: Unable to delete transform temporary directory D:/gnu/bzr/emacs/djgpp/.bzr/checkout/pending-deletion.  Please examine D:/gnu/bzr/emacs/djgpp/.bzr/checkout/pending-deletion to see if it contains any files you wish to keep, and delete it when you are done.

  21.344  Traceback (most recent call last):
    File "bzrlib\commands.pyo", line 912, in exception_to_return_code
    File "bzrlib\commands.pyo", line 1112, in run_bzr
    File "bzrlib\commands.pyo", line 690, in run_argv_aliases
    File "bzrlib\commands.pyo", line 705, in run
    File "bzrlib\cleanup.pyo", line 135, in run_simple
    File "bzrlib\cleanup.pyo", line 165, in _do_with_cleanups
    File "bzrlib\builtins.pyo", line 3869, in run
    File "bzrlib\decorators.pyo", line 194, in write_locked
    File "bzrlib\workingtree.pyo", line 1635, in pull
    File "bzrlib\merge.pyo", line 1968, in merge_inner
    File "bzrlib\merge.pyo", line 704, in do_merge
    File "bzrlib\cleanup.pyo", line 135, in run_simple
    File "bzrlib\cleanup.pyo", line 165, in _do_with_cleanups
    File "bzrlib\merge.pyo", line 675, in _do_merge_to
    File "bzrlib\merge.pyo", line 814, in do_merge
    File "bzrlib\cleanup.pyo", line 131, in run
    File "bzrlib\cleanup.pyo", line 165, in _do_with_cleanups
    File "bzrlib\merge.pyo", line 820, in _do_merge
    File "bzrlib\transform.pyo", line 1567, in apply
    File "bzrlib\transform.pyo", line 2971, in apply_deletions
    File "bzrlib\osutils.pyo", line 1054, in delete_any
    File "bzrlib\osutils.pyo", line 1068, in _delete_file_or_dir
  WindowsError: [Error 5] Access is denied: u'D:/gnu/bzr/emacs/djgpp/.bzr/checkout/pending-deletion\\new-105'



More information about the bazaar mailing list