Received: from spf5.us4.outblaze.com (spf5.us4.outblaze.com [205.158.62.27]) by sdf.lonestar.org (8.12.10/8.12.10) with ESMTP id iAEI9PTq012420 for ; Sun, 14 Nov 2004 18:09:25 GMT Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) by spf5.us4.outblaze.com (Postfix) with ESMTP id 885AD77130 for ; Sun, 14 Nov 2004 18:09:28 +0000 (GMT) Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CTOxF-0001Jv-Of for migo@homemail.com; Sun, 14 Nov 2004 13:18:25 -0500 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.33) id 1CTOwr-0001Jn-EM for gnu-arch-users@gnu.org; Sun, 14 Nov 2004 13:18:01 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.33) id 1CTOwq-0001JO-Lm for gnu-arch-users@gnu.org; Sun, 14 Nov 2004 13:18:00 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.33) id 1CTOwq-0001JL-JB for gnu-arch-users@gnu.org; Sun, 14 Nov 2004 13:18:00 -0500 Received: from [129.255.60.186] (helo=ct.radiology.uiowa.edu) by monty-python.gnu.org with esmtp (Exim 4.34) id 1CTOo5-0007ml-0A for gnu-arch-users@gnu.org; Sun, 14 Nov 2004 13:08:57 -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 iAEI8s324655; Sun, 14 Nov 2004 12:08:54 -0600 Message-ID: <41979F2A.2020009@arbash-meinel.com> Date: Sun, 14 Nov 2004 12:08:42 -0600 From: John Meinel User-Agent: Mozilla Thunderbird 0.7.1 (X11/20040626) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Charles Duffy Subject: Re: [Gnu-arch-users] Removing the last changeset(s) from the archive References: <20041114111431.E15533@mofo.meme.com> <1100454735.15201.24.camel@localhost> In-Reply-To: <1100454735.15201.24.camel@localhost> X-Enigmail-Version: 0.84.2.0 X-Enigmail-Supports: pgp-inline, pgp-mime Cc: gnu-arch-users@gnu.org, "Karl O. Pinc" 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="===============0926040066==" 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: 4921 Lines: 128 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --===============0926040066== Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig0B0F50C8BB125651D9159D36" This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig0B0F50C8BB125651D9159D36 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Charles Duffy wrote: > On Sun, 2004-11-14 at 11:14 -0600, Karl O. Pinc wrote: > >>Arch is designed so each developer can have his own tree, >>why not be able to correct mistakes? I'm not asking >>to be able to remove any patches but the latest. If >>there's worry about concurrency in the case of shared >>archives there could always be an option (in the >>archive/category/branch?) to dis-allow uncommit operations. > > > If you have your own private archive and then use push-mirror to make > your changes public, you can do this a bit more safely for changes that > haven't been push-mirrored yet, simply by manually altering your archive > and then killing all revision library entries, pristines, working trees, > etc. related to the dead revision. Failing to kill everything can lead > to archive corruption (as diffs may be made off the old version of the > revision rather than the new one). > > I think the wiki discusses this. > > >>As a final argument, after a cursory glance at the archive >>data struture it seems this would be trivial to impliment. > > > A not-so-trivial issue: How do you handle the cases where someone has > already checked out / branched a version you're deleting? > > > > That said, I believe Tom has fairly recently said that he agrees that > this kind of feature is worth having. It's not something that can be > implemented trivially, though, for the reasons above. > > IIRC, what Tom proposed is something to do all the steps it can to the local system. Meaning go to all revlibs and delete the revision, go to the archive and delete the revision, etc. It wouldn't guarantee that you prevent things from getting corrupted, as if anyone else sees your changes, you have corruption. But if you are careful and do it quickly, it should work. To truly do what you want to do, we would need to add some indicator to the archive that this is the "true" value for this revision. There isn't any support for this, and adding it would probably make things ugly. For instance, if you change your archive after I have mirrored it, you need some way to tell me that it has changed. In general, arch doesn't modify history, so my arch won't look at old patches, it just assumes they are correct. There is a way that I can think of. And that is to add a file that says "this revision has been altered." And to keep things reasonable, we could only allow altering the *end* of a development line. So when arch connects to the tree, it first checks its last known revision to see if it was ever changed. If it was, it then searches the tree to find any other changes, and starts updating it's own information. The idea is it should only add 1 extra lookup when it connects to the archive. It could probably be done with a file called "changenum" which just contains a number indicating which change this is. If the number is greater than the local number, a change has occurred, and we need to play fixup. I still think it is a bad idea. Arch is founded on the "past doesn't change". I'm okay with a script that will clean up an accidental local change as best it can, letting the user know they may have corrupted things. But I really don't think it should be part of the arch protocol. I mean, do any other revctrl software let you truly change history (without hacking the archive itself)? If it's just something like summary comments, etc, this could be handled in a different way (revision controlled comments.) But revision controlled revisions seem a little redundant for little gain. John =:-> --------------enig0B0F50C8BB125651D9159D36 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 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFBl58qJdeBCYSNAAMRArMBAJ4womc7YEpVXx/UtojU9vkNJ/f8iACfejoX sQpsEqgRNKN6Fq9u7DQGsrk= =iC9Z -----END PGP SIGNATURE----- --------------enig0B0F50C8BB125651D9159D36-- --===============0926040066== 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/ --===============0926040066==--