bzr merge gives error over Revision {('',)} not present in "<bzrlib.knit.KnitGraphIndex object at 0x01697050>"

Bug #217737 reported by Craig Hewetson
4
Affects Status Importance Assigned to Milestone
Bazaar
Confirmed
Medium
Unassigned

Bug Description

I've did a merge from local branch "src" to "src-plumbing". After making the changes from the conlicts (that resulted from the merge) I then commited those changes
and then called status (as shown below:).

Z:\NGMC\V4\src-plumbing>bzr st
pending merges:
  Craig Hewetson 2008-04-15 Fixed the singleton pattern for the audio controller

I then was told that a merge was pending so I executed the following:

Z:\NGMC\V4\src-plumbing>bzr merge
Merging from remembered location Z:/NGMC/V4/src/
bzr: ERROR: Revision {('',)} not present in "<bzrlib.knit.KnitGraphIndex object at 0x01697050>".

I just did this check to give more info.
Z:\NGMC\V4\src-plumbing>bzr check
checked branch file:///Z:/NGMC/V4/src-plumbing/ format Bazaar Branch Format 6 (bzr 0.15)
checked repository <bzrlib.transport.local.LocalTransport url=file:///Z:/NGMC/V4/src-plumbing/> format <RepositoryFormatKnitPack1>
     7 revisions
  4577 file-ids
  4349 unique file texts
 19380 repeated file texts
     0 unreferenced text versions

Revision history for this message
Craig Hewetson (craighewetson-deactivatedaccount) wrote :
Revision history for this message
Craig Hewetson (craighewetson-deactivatedaccount) wrote :

don't know if its related to bug #51754

Revision history for this message
John A Meinel (jameinel) wrote :

It doesn't seem like the same bug. I'm trying to figure out how it would be referencing an empty revision id.

Is it possible to make this branch public?

Revision history for this message
Craig Hewetson (craighewetson-deactivatedaccount) wrote :

Unfortunately I'm using bazaar to manage my workflow at work and the software that I'm developing is not open etc.

I can give the metadata that bzr generates etc... will a bzr check on the parent branch (src) and a check on the child branch (src-plumbing) be enough info? (the log file of that is)

Can reiterate my steps:
1 made a change to a single file in (src)
2 did a commit in (src)

3 did a bzr merge in (src-plumbing)
4 got conflicts
5 I changed the file and did a commit
6 I found that my .project file was also different and i manually (outside bzr) deleted the .project.base and .project.other files
7 It then complained about pending deletes and i removed that folder under the .bzr dir ... it had one file in, that contained the .project file's text.
8 But i managed to get my status showing that only a merge was pending

and this is the situation it is in now ..

If that delete I did was dodgy then it should show that in my status or check commands that something isn't right etc.

Is there a way to clean it or is there an workaround so i can continue merging etc? May a way to reset the referenced revision id etc?

Revision history for this message
Craig Hewetson (craighewetson-deactivatedaccount) wrote :

I managed to not get this problem any more ... just did a commit and then did a merge...

Revision history for this message
John A Meinel (jameinel) wrote :

So it sounds like it is a bug that occurs when you do a merge while you have a pending merge.

A few interesting things...

'bzr merge' is designed to not let you merge in another branch while there are pending changes (unless you supply --force). However, in this case you ended up with only a pending merge, which showed the working tree as clean. I'm not sure if that should still be allowed without --force.
However, that is a separate issue.

What *specifically* did you delete under '.bzr/'. You almost *never* want to delete something in there, and I'm not sure what was writing a '.project' file.

It is possible that the file contained information about what revisions were merged, etc. And so when you did your work later, it could no longer access it (and thus failed not finding empty-string revision.)

Revision history for this message
John A Meinel (jameinel) wrote :

I think it is important to understand how we got into this situation.
Reading further it seems like there is a case where we *do* prompt the user to delete .bzr/checkout/pending-deletes, I'm not sure what is going on at this point.

Changed in bzr:
importance: Undecided → High
status: New → Triaged
Revision history for this message
Craig Hewetson (craighewetson-deactivatedaccount) wrote :

This bug: #218206 (just logged it) gives more information on the situation (I logged it since the error is different)

And the reason I deleted those files is because of this prompt: (had to look in a log to find it, since I don't have text saved from the terminal )

Z:/NGMC/V4/src-plumbing/.bzr/checkout/pending-deletion. Please examine
Z:/NGMC/V4/src-plumbing/.bzr/checkout/pending-deletion to see if it contains any files you wish to keep, and delete it when you are done.

Looking at this I assumed to go to the files and delete them. If i'm supposed to use a bzr command then which do i use? and it should be indicated etc.

Also about the .project file ... it does not reside in the .bzr directory, it gets modified by my IDE and its version controlled.
When I got the error I looked in the Deletion-pending dir and opened up the only file in the dir (which had a file pattern with the word "new") and looked at the contents
and I recognised it to be that of the .project file.

Martin Pool (mbp)
Changed in bzr:
status: Triaged → Confirmed
Jelmer Vernooij (jelmer)
tags: added: knits
Jelmer Vernooij (jelmer)
Changed in bzr:
importance: High → Medium
Jelmer Vernooij (jelmer)
tags: added: check-for-breezy
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.