gnu-arch-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnu-arch-users] in-tree pristines fatally wounded (merge-fest etc)


From: Tom Lord
Subject: [Gnu-arch-users] in-tree pristines fatally wounded (merge-fest etc)
Date: Mon, 1 Dec 2003 11:14:51 -0800 (PST)

This is news about the head revision of my tla--devo--1.1.

I'm caught up on Rob's integegration branch now.  Among the
interesting new features was the --hard-links hack which I've revised
and extended.  You can get by, now, without in-tree pristine copies
at all and the only thing left is to make it as easy as possible.

(p.s. to rob, the non-syncing patches not applied from the integration
branch are rejected -- I've fixed those bugs in a better way, I
think.)

* New options:

** get --library 

  Ensures that the requested revision is present in the
  revision library.  This implies --no-pristine.


** get --hard-links

  Builds the requested revision by hard-linking to the library.
  This implies --library.

** get --sparse

  If `get' will be adding to the library (--hard-links or --library)
  then do so sparsely rather than by recursively adding revisions.


** build-config --library
   build-config --hard-links
   build-config --sparse

  These options work as per get.


If you use hard-link trees, but somehow screw up in a way that
corrupts your library, this will be detected and abort the relevent
operation (modulo bugs or extremely improbable screw-ups :-).


* New hooks:

In addition, there are three new hook functions that are called when,
otherwise, arch might build an in-tree pristine tree or scratch tree.  
The hooks are:

   ~ find-pristine  -- called when arch wants but can do without
                       a given pristine copy

   ~ make-pristine  -- called when arch definately needs a given 
                       pristine copy and will fall-back by making
                       an in-tree pristine

   ~ make-tmp-pristine -- called when arch definately needs a given
                          pristine copy but will fall back by building
                          and later deleting a scratch tree

All three hooks are called with the environment variables

        $ARCH_ARCHIVE
        $ARCH_REVISION

set to indicate which revision is needed.


* Other notes:

Note that if you have rather old revision library revisions -- those
that pre-date the inode-siganture hack -- you may get some warnings 
saying that you should remove and rebuild those revisions from your
library.   I recommend doing so if you get that warning -- the
inode-sig hack now doubles as a way to sanity-check the state of the
library and the sanity check can't be applied to those old revisions.

As submitted, the --hard-links hack didn't work with even recent
library revisions (because the inode signature hack has been changed
slightly).   I've fixed that, though.


By using --hard-links and/or --library and by defining at least the 
hook `make-pristine', you can now operate entirely without in-tree
pristine copies.

By using --hard-links, you can operate on huge trees without excessive
disk-space consumption even if you have many working copies.

--hard-links should, in theory, make some operations (e.g. `get')
faster in many common situations on huge trees -- whether or not the
theory is true remains to be seen.  The code is currently pretty
liberal about doing inventory traversals and that may or may not need
some optimization work to truly realize the time savings.

Regardless, the disk-space savings should be there: people working in
very tight (disk-space-wise) environments would do well to spend some
effort implementing the three hooks mentioned above to manage their
resources.

All the raw materials are now in place to get decent performance for,
oh, say, lk-sized trees -- it's just a matter of configuration and
tuning.



* Heros of the Arch Revolution

Special thanks to:

        Robert Collins -- integration branch work and the inode-sig
                          sanity-check

        Pau Aliagas -- the --hard-links option to get

        Me :-) -- extending the above to mortally wound in-tree
                  pristines and to fix upward-compatability problems

-t

encouragment to continue is always welcome :-)  :

https://www.paypal.com/xclick/business=lord%40emf.net&item_name=support+for+arch+and+other+free+software+efforts+by+tom+lord&no_note=1&tax=0&currency_code=USD

and

address@hidden for www.moneybookers.com payments.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]