Reciently I started letting some other users of darcs begin to push up to where we are trying to keep a master copy.

Now my master copy of the the repo seems to have an issue.

I get the following when I try to push a particular patch.

=========
darcs failed:  Error applying patch to recorded!
Running 'darcs repair' on the target repo may help.
./src/winp.c: openBinaryFile: does not exist (No such file or directory)
=========

And then I have to go do a darcs repair on the repo.

========
$ darcs annotate winp.c

Fail: The file 'winp.c' was removed by
Mon Sep 12 08:39:39 CDT 2005  <[EMAIL PROTECTED]>
  * DirRestructure
========

Looking at DirRestructure I see that the offender removed almost all the files in the source directory and didn't re-add them. Something about not understanding how to type 'darcs mv' properly. *grin* He's been thusly flogged for his transgressions.

I was able to establish a new master repo by geting a copy of my local repo and fixing it up to current and we have moved on with the new master.

However, I'd like to go though the steps of recovering this repo back to a good state and making it current as an excercise for any future problems that may happen. Sharpen my darcs tools. As the lead developer and RCS manager I'm supposed to be the guru for this type of stuff. :)

So I'm looking for a plan of action here.

My guess is that I need to:

- Backout (unpull?) the patches up to the point just prior to DirRestrure.
- Skip the DirRestructure
- Apply patches up to current
- Obliterate? the DirRestructure patch

Obviously thats a gross oversimplification, I feel I'm going to end up in patch dependency hell. I think all the patches after that depend on the DirRestructure. I have no idea how he managed to keep his tree intact yet jack up the repo.

How would I go about getting rid of the all DirRestructure patches that are floating around in more than just the offenders repo. His broken repo got copied to a few other places.

How do I keep it from creeping back up sometime? Would it be possible to setup some sort of blacklist where a repo would never try to apply a patch that matches a certain hash?

Again this may be more work than its worth but I just want the experience.

TIA

--
Richard A. Smith


_______________________________________________
darcs-users mailing list
[email protected]
http://www.abridgegame.org/mailman/listinfo/darcs-users

Reply via email to