[darcs-users] How do I purge a binary from my repository?

Eric Kow kowey at darcs.net
Sun Mar 22 21:45:47 UTC 2009

On Sun, Mar 22, 2009 at 17:05:39 +0100, Aaron Kaplan wrote:
> Sorry, it took me a while to get around to writing up the results.  To
> summarize, Lyle's question was the following:

Thanks very much for doing this!  I'm always amazed by folks who manage
to follow up on stuff (no matter how long it takes) and wish I could be
more like them.

I'm glad to see that Lyle managed to get up and running again, which is
the most important thing.

Do you think any of your findings below on an FAQ somewhere?  Something
like "how do I split a patch?"  If so, could I make another request for
your help?
> In this kind of situation, one would like to be able to split the
> problematic patch into two separate patches, one containing the
> undesired part and the other containing the desired part, and then
> obliterate the undesired part.

Yeah, that's one of the recommendations in the darcs transplant request.
I suspect, on the other hand, that this is the kind of work that's going
to have to wait until darcs-3.  I hope that over the sprint we'll work
out a good transition plan so we have a clearer picture where work like
this fits in.

> In principle, I think the darcs 2 semantics do allow this kind of
> operation.  In a temporary repo, pull all changes up to and including
> the one you want to split.  Unrecord it, and rerecord the parts
> separately. Now pull in the entire history, including the original
> problematic patch. The newly recorded patches and the original
> problematic patch make the same changes.  Under darcs 1 they would have
> been considered to conflict, but under darcs 2 semantics they aren't;
> instead, the subsequent patches that depend on those changes are
> considered to depend on the presence of either the problematic patch or
> the new ones. So now you can obliterate the problematic patch, leaving
> the rest of the history intact.

That makes sense to me.
> Lyle and I tried applying this procedure in a couple of different ways,
> and essentially it works, but the repository ends up in a state where
> certain operations result in error messages.  In this case, the message
> was "darcs: bug in get_extra commuting patches:". I previously reported
> getting the error "patches to commute_to_end does not commutex (1) at
> src/Darcs/Patch/Depends.hs:452" after a similar operation (see
> http://bugs.darcs.net/issue1327 ).

Argh, thanks for reminding me about that.

> Below I include the exact steps I took.  Lyle tells me the
> version of the repo with the unwanted patch is no longer publicly
> available, but maybe he'd give it to you if you ask. (I also have a
> copy, which I'd share with his permission.)
> Please CC me on replies.
> -Aaron
> darcs get http://patch-tag.com/publicrepos/vintage-basic
> darcs get --to-patch=add-external-documentation vintage-basic temp

I can't reproduce this because I can't find the patch
add-external-documentation (and I get the impression that the
similarly named added-external-documentation is an altogether
different patch)... but it sounds like we're getting closer
to a proper regression test!

Eric Kow <http://www.nltg.brighton.ac.uk/home/Eric.Kow>
PGP Key ID: 08AC04F9
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 194 bytes
Desc: not available
URL: <http://lists.osuosl.org/pipermail/darcs-users/attachments/20090322/92bdd6b5/attachment.pgp>

More information about the darcs-users mailing list