bugGNU arch -- a revision control system - Bugs: bug #5157, library-add should not add...

 
 

bug #5157: library-add should not add preceding revisions

Submitted by:  Miles Bader <miles>
Submitted on:  Mon 08 Sep 2003 11:23:07 PM UTC  
 
Category: tlaSeverity: 3 - Normal
Item Group: small feature ideaStatus: None
Privacy: PublicOpen/Closed: Closed
Release: lord@emf.net--2003b/tla--devo--1.1--patch-153
Fixed Release: 
Merge Request?: None
Your Archive Name: 
Your Archive Location: 
Assigned to: None

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Tue 30 Dec 2003 03:39:15 AM UTC, comment #4:

No longer a bug, as library-add has a --sparse option.

James Blackwell <jblack>
Mon 01 Dec 2003 10:56:48 PM UTC, comment #3:

ibrary-add supports --sparse now, but the --N style commands are still absent.. leaving the bug open.

Anonymous
Sat 08 Nov 2003 11:24:31 AM UTC, comment #2:

Uhm, code talks. fine grained control over library adding behaviour will be useful, so I don't think some experimentation will be wasted.

Robert Collins <robertc>
Fri 26 Sep 2003 01:24:58 AM UTC, comment #1:

By the way, my thought was to add two more options to library-add:

* an `--every=N' option, which would add a separate library entry for every patch-P, where (P % N) == 0 between the requested revision and the highest existing revisions

* an `--until' option which would say basically `just add some revisions and stop at the requested revision, but it's not necessary to actually add the requested revision'

* allow specifying a version instead of a revision, in which case it uses the last revision in the version, and make the argument default to the latest revision in the current tree (if you're in a tree)

The old behavior of library add could be had with just `tla library-add --every=1 REV', and a useful thing for your cron-job/hook to do might be `tla library-add --every=10 --until VERSION', which would make sure the library space was populated automatically by every 10th revision (the --until makes it do this nicely regardless of the revision number actually used).

BTW, remember, if you hate these ideas, be sure to say so, so I don't try implementing it myself... :-)

Miles Bader <miles>
Mon 08 Sep 2003 11:23:07 PM UTC, original submission:

Currently, the tla library-add subcommand recursively adds all preceding
revisions (until it hits a previously added library revision),
presumably depending on hard-link sharing of files to avoid excessive
disk-space consumption.

However in my experience, this doesn't work all that well in practice -- it
does end up using large amounts of excessive disk-space for the preceding
revisions, and I've had to get into the habit of going back and manually
removing all the `extra' revisions it adds to get the space back.

For instance, with the sources for tla itself, which are fairly small:

. Size of tla sources: 4.8MB

. I had a previous library lord@emf.net--2003b/tla--devo--1.1--patch-127,
and I did `tla library-add lord@emf.net--2003b/tla--devo--1.1--patch-153'.
tla automatically added all the intervening revisions, for a total of 27
revisions added.

. The resulting increase in disk-space usage was 39.6MB, or about 1.5MB per
revision added -- efficient per revision, but since a version can have
hundreds of revisions, it adds up pretty quickly, especially for large
source trees.

. Removing all the intervening automatically-added revisions reclaimed about
36MB, so the single revision I actually wanted took up 3.7MB (a bit
smaller than the actual sources, presumably because it's sharing some
space with the other revisions I added earlier).

Anyway, I think that library-add should add just the requested revision,
finding any previously added library revision, hard-link copying that tree,
and then updating the copy in-place until the desired revision is reached.

I think this is a also reasonable from a `least surprise' point of view too
-- it does exactly what the user requests, and uses resources accordingly.

If the `add all intervening revisions' behavior is desirable, it could be
requested explicitly, e.g. with an `--until' option.

Miles Bader <miles>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

CC list is empty

 

Do you think this task is very important?
If so, you can click here to add your encouragement to it.
This task has 0 encouragements so far.

Only logged-in users can vote.

 

Please enter the title of George Orwell's famous dystopian book (it's a date):

 

 

Follows 1 latest change.

Date Changed By Updated Field Previous Value => Replaced By
Tue 30 Dec 2003 03:39:15 AM UTCjblackOpen/ClosedOpen=>Closed

Back to the top


Powered by Savane 3.1-cleanup1