Received: from spf3.us4.outblaze.com (spf3.us4.outblaze.com [205.158.62.25]) by sdf.lonestar.org (8.12.10/8.12.10) with ESMTP id iALH8U4h003253 for ; Sun, 21 Nov 2004 17:08:33 GMT Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) by spf3.us4.outblaze.com (Postfix) with ESMTP id 7D7B05439F for ; Sun, 21 Nov 2004 17:08:31 +0000 (GMT) Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CVvLR-0007ci-8T for migo@homemail.com; Sun, 21 Nov 2004 12:17:49 -0500 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.33) id 1CVvKu-0007aw-Fo for gnu-arch-users@gnu.org; Sun, 21 Nov 2004 12:17:16 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.33) id 1CVvKt-0007aF-PT for gnu-arch-users@gnu.org; Sun, 21 Nov 2004 12:17:16 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CVvKt-0007aA-NK for gnu-arch-users@gnu.org; Sun, 21 Nov 2004 12:17:15 -0500 Received: from [129.255.60.186] (helo=ct.radiology.uiowa.edu) by monty-python.gnu.org with esmtp (Exim 4.34) id 1CVvBp-0007rI-T0 for gnu-arch-users@gnu.org; Sun, 21 Nov 2004 12:07:54 -0500 Received: from [192.168.1.11] (12-217-241-0.client.mchsi.com [12.217.241.0]) by ct.radiology.uiowa.edu (8.11.6/8.11.6) with ESMTP id iALH7j328511; Sun, 21 Nov 2004 11:07:45 -0600 Message-ID: <41A0CB5B.6090604@arbash-meinel.com> Date: Sun, 21 Nov 2004 11:07:39 -0600 From: John A Meinel User-Agent: Mozilla Thunderbird 0.9 (Windows/20041103) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Nolan Eakins Subject: Re: [Gnu-arch-users] Conflict applying patch References: In-Reply-To: X-Enigmail-Version: 0.89.0.0 X-Enigmail-Supports: pgp-inline, pgp-mime Cc: gnu-arch-users@gnu.org X-BeenThere: gnu-arch-users@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: a discussion list for all things arch-ish List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: multipart/mixed; boundary="===============2074500272==" Sender: gnu-arch-users-bounces+migo=homemail.com@gnu.org Errors-To: gnu-arch-users-bounces+migo=homemail.com@gnu.org Status: RO Content-Length: 6667 Lines: 166 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --===============2074500272== Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enigB5EF7B9C9D5C05C9F4FD72D7" This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enigB5EF7B9C9D5C05C9F4FD72D7 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Nolan Eakins wrote: > I'm running into "PANIC: conflict applying patch in arch_build_revision" > when I try to get a copy of one of my archives. I don't know why. I read > [1], but I don't know if it even applies to my archive or not. The fix > isn't very descriptive because I don't know if it means to add a '\n' or "\ > No newline at end of file". The rest of the thread then goes on to describe > how arch's test suite will detect it and such. > > My archive is accessible at [2]. I'm running tla-1.2-4 on a Gentoo system > with diff 2.8.4. Arch doesn't panic until patch-5. > > [1] http://lists.gnu.org/archive/html/gnu-arch-users/2003-12/msg00390.html > [2] http://semanticgap.com/arch/psi-sneakin/ > > Thanks, > Nolan > Well, there are definitely conflicts in the archive. And I don't believe the fix that Tom mentioned is going to help you. It looks like you tried to change history. So did you at one point commit a change to the archive, and then delete it, and then try to commit again? It looks like at some point you edited {arch}/\=tagging-method, as well as one of your patch-logs. The problem is that the changes you made *don't* apply to the tree as it exists at patch-4. The lines you "changed" simply don't exist. If I had to diagnose, I would say you did "tla commit" for patch-4, but realized it wasn't ignoring everything you wanted. So then you went to your archive, and deleted patch-4, went back to your source tree fixed something, and then committed again. But somewhere you messed up, because something had already seen the old patch-4, and from there you committed patch-5, so when it went to determine the set of changes to change p4 into p5 it created it based on the *old* p4, not the newest one. Basically, the answer is *don't do this*. Arch has the idea of a namespace. A fully qualified revision (archive/category--branch--version--revision) corresponds to one and only one set of files. If this property is held, then it can do all sort of work of caching, etc, to make things faster. Once you do 'tla commit' you assign the unique fully qualified revision name to that set of files. tla also states that you cannot change history. If you undo a patch, and re-apply it, you have officially changed history. "these files used to be called A, but now *these* files are called A". If you are very careful, and nobody else has seen your changes, you *can* get away with rolling back a patch. But it is very dangerous and can lead to corrupt archives (like you seem to have). If you have to undo what you just did, the best way is to use: tla replay --reverse $LAST_PATCH tla sync-tree $LAST_PATCH tla commit -s "undid $LAST_PATCH" The replay --reverse undos the last change, the sync-tree lets tla know that you honestly don't want it. (Otherwise it just thinks you wanted the older version for testing sort of thing), and then the commit gets you back to where you were. *then* you can commit again. So all this tells you what not to do, and what do do in the future, but it doesn't get you out of the mess you are in right now. So how to do that? Well, you've already lost your history, since you changed history, but weren't careful enough to cover your tracks :) But really you've only lost a couple of patches. If the history isn't terribly important, and you already have a working tree of the latest version, I would use that to tag to a new version, and seal this version with a comment about it being corrupt. Since I saw that this is a continuation of another archive, (psi--mainline--0.9), it's probably not too big of a deal for you to start a new branch of psi--sneakin--0.2 If you *don't* have a working copy somewhere, things get a little bit trickier, because you can't get a working copy from the archive. But I think you can get close. *If* you are lucky, and the only inconsistency is in patch-5, you can probably do this: tla get psi--sneakin--0.1--patch-4 cd psi--sneakin--0.1--patch-4 # Pretend you got the patch-5 without actually getting it tla sync-tree psi--sneakin--0.1--patch-5 # Bring your tree up to the latest version tla replay # State that *this* is the correct version of the tree, this should be # patch-10 tla commit # Create the new branch tla tag -S psi--sneakin--0.1 psi--sneakin--0.2 # Seal off the old branch tla commit --seal -s "This branch has a corrupted patch-5, please move to psi--sneakin--0.2" cd .. tla get psi--sneakin--0.2 # Start working only from psi--sneakin--0.2 The above won't work if you have changes in your tree that depend on the changes created in patch-5, because you were changing a patch-log and =tagging-method, I'm hoping they won't conflict. But I can't guarantee that. The other possibility is that when you get to the "sync-tree", you the manually try to replicate what patch-5 did, before you do the tla replay. Good luck, and try to be careful about history. Sorry you got bitten by this, I think most of us do at one point in time before we realize that preserving history is worth it, and the notion that *every* patch has to be perfect isn't really true. I don't know any SCM that lets you change history, it's just that tla uses a nice clean format that makes you feel like it should be possible. (It is, if you are *really* careful.) John =:-> --------------enigB5EF7B9C9D5C05C9F4FD72D7 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (Cygwin) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFBoMteJdeBCYSNAAMRArxyAKCHrrzGgRFQbi+N3qnhzcZt1RcZSACePVBH GW3XTEw5xST69xPgWExJH54= =JTjr -----END PGP SIGNATURE----- --------------enigB5EF7B9C9D5C05C9F4FD72D7-- --===============2074500272== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Gnu-arch-users mailing list Gnu-arch-users@gnu.org http://lists.gnu.org/mailman/listinfo/gnu-arch-users GNU arch home page: http://savannah.gnu.org/projects/gnu-arch/ --===============2074500272==--