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