[Bitkeeper-users] Missing File In Repository
Rick Smith
rick at bitmover.com
Wed Feb 14 15:46:34 PST 2007
> On Robert's directory is says that everything is fine.
>
> On the parent directory:
>
> $ bk -r check -vac
> Marked gone (bk help chk1):
> src/experimental/rlesurf/loadMouseArrays.java
> 100% |=================================================================|
> OK
The check passes, with a hint to look at 'bk help chk1' which reads:
===============================================================================
A file is marked as gone (in BitKeeper/etc/gone) but is present in your
repository, possibly missing some deltas. This can happen if a different
repository had lost the file, marked it as gone so that "bk -r check -a"
would pass, and then your repository was updated with that information.
Since your repository still has the file, it may be possible to restore
it in the other repository if you wish.
The other case is that someone is trying to destroy all instances of the
file's revision history. Suppose a large file were added by mistake,
perhaps a derived (compiled) file or binary.
Examine the files listed and if it is clear the file is obsolete, remove
the revision history from your repository to be consistent with your parent.
If it is clear that the file is valuable then you should have the
owner of the other repository restore the file from your repository.
After the file is restored, remove the file identifier (root key) from
the BitKeeper/etc/gone file. If you have only part of the revision
history then remove the root key from the BitKeeper/etc/gone but add
the missing keys with a
bk -r check -aggg | bk gone -
===============================================================================
If you don't want the file, you can run 'bk rmgone -i' and select 'y'
for files that you don't want.
If you do want to restore the file in Robert's, you can copy the
src/experimental/rlesurf/SCCS/s.loadMouseArrays.java file
to Robert's repo and run check in there. If that passes a check,
you can then edit the gone file to delete the entry that was added,
bk citool the change and push to the parent. You should then be
able to pull.
Rick
On Wed, Feb 14, 2007 at 06:37:57PM -0500, Francois Pepin wrote:
> Hi Rick,
>
> I'm working on the same repository as Robert here. BK version is 3.2.3.
>
> $ bk version
> BitKeeper/Pro version is bk-3.2.3 20040818155841 for x86_64-glibc23-
> linux
> Built by: lm at amd64.bitmover.com in /build/3.2.x-lm/src
> Built on: Wed Aug 18 11:13:46 PDT 2004
> Running on: Linux 2.6.12-1.1381_FC3smp
>
> What happened is that Robert delete the file, managed to convince his
> local repository that things were fine enough and push to the parent.
> There are about a dozen changesets that were pushed with the various
> attempts of fixing the problem. We're not quite sure how he managed to
> do it, but he never touched the parent repository directly.
>
> > What do these two commands give in your local repo:
> > bk -r check -vac
> > bk -R sfiles -cp
>
> On Robert's directory is says that everything is fine.
>
> On the parent directory:
>
> $ bk -r check -vac
> Marked gone (bk help chk1):
> src/experimental/rlesurf/loadMouseArrays.java
> 100% |=================================================================|
> OK
> $ bk -R sfiles -cp
> $
>
> The error message below is what happens when I'm trying to pull from the
> parent to my own repository, meaning no one, except for Robert, can
> pull anything from the parent repository.
>
> On the plus side, we can clone from the parent repository as long as we
> don't force bk to look at that bad changeset things behave nicely
> enough. I would rather prefer that everything remains in a consistent
> state and not have to force everyone to start over from freshly cloned
> repositories and recreate their changes.
>
> Francois
>
> On Wed, 2007-02-14 at 14:07 -0800, Rick Smith wrote:
> > First step is to get your repository to pass
> > On Wed, Feb 14, 2007 at 04:57:20PM -0500, Robert Lesurf wrote:
> > > I've deleted a couple files that were under Bitkeeper control, and
> > > then pushed the changes the repository.
> >
> > Do you mean commited the change?
> > What version of bk are you using?
> >
> > > Now I'm getting errors about the missing files. I've tried using
> > > "undo" to remove changesets, but this doesn't work and instead comes
> > > up with a missing file error.
> >
> > Okay, you want to stabilize your repository passing a 'bk -r check -vac'
> > before messing with push and pull to others.
> >
> > > Also, I've used the "gone" command to fix the problem on my local
> > > machine,
> >
> > How? Something like
> >
> > bk -r check -ag | bk -R gone -
> > bk commit
> >
> > The first line adds entries to the gone file, but does not commit.
> > If you try to push or pull after the first step, then the changes
> > to the gone file do no propagate and the other repos will see the
> > error.
> >
> > What do these two commands give in your local repo:
> > bk -r check -vac
> > bk -R sfiles -cp
> >
> > If the first one returns that the repo is OK and the second one lists
> > the BitKeeper/etc/gone file, then you need to run citool and make a
> > cset for the changes to the gone file. Then try the pull again.
> >
> > Rick
> >
> >
> > > but the repository still seems to be confused about the
> > > missing files - other individuals cannot "pull" from the repository.
> > > Is there anything that can be done to fix this problem (without
> > > cloning a new copy)? Unfortunately, I no longer have the original
> > > files that were deleted.
> > >
> > > Here's part of the error message from when someone else tries to pull
> > > from the repository:
> > >
> > >
> > > src/experimental/rlesurf/loadMouseArrays.java|20070115164353|60842|
> > > d7a309455e461888
> > > is missing and key is not in a committed gone delta, aborting.
> > > adler32 aborting
> > > cmd_pull_part2: makepatch failed; status = 1
> > > ChangeSet: 16 deltas
> > > BitKeeper/etc/gone: 6 deltas
> > > BitKeeper/deleted/.del-GetConcordances.java~60841449b8dafaae fnext: No
> > > such file or directory
> > >
> > > =================================== ERROR
> > > ====================================
> > > takepatch: missing checksum line in patch, aborting.
> > > takepatch: other patches left in PENDING
> > > _______________________________________________
> > > Bitkeeper-users mailing list
> > > Bitkeeper-users at bitmover.com
> > > http://mail.bitmover.com/mailman/listinfo/bitkeeper-users
> > _______________________________________________
> > Bitkeeper-users mailing list
> > Bitkeeper-users at bitmover.com
> > http://mail.bitmover.com/mailman/listinfo/bitkeeper-users
> >
More information about the Bitkeeper-users
mailing list