Inconsistance in snapshots repository

Craig Burley burley@gnu.org
Thu Apr 16 23:59:00 GMT 1998


>  > BTW, would it be possible to have a ``moving tag'' called
>  > `egcs_latest_snapshot', updated whenever a snapshot is released?
>This is an excellent idea.  The only trick is to coordinate it with
>the actual "release" of a snapshot.

I'm CVS-unaware, but, generally, is this really guaranteed to provide
a coherent snapshot to anyone, anytime, including if they try using
it while a snapshot is being produced (and the "moving tag" updated)?

That is, is whatever procedure people normally use to obtain a
snapshot via CVS guaranteed to obtain either all the files for
snapshot N *or* all the files for P, but never a mix, if, partway
through said obtaining, snapshot N is "replaced" as the "latest"
with snapshot P?

(E.g. I could think of this moving tag idea as perhaps a symbolic
link to a directory containing a snapshot in a non-CVS universe.
Whenver a new snapshot is made, after its directory is fully
populated and coherent, the symbolic link is simply updated.  That
works fine for simple uses like "cd .../symbolic-link; cp -a * ...",
because cd'ing to a symbolic link really cd's to the directory it
points to, at least in most cases; it's not just an updating of
some environment symbol.  But, in effect, it *might* be if the
target directory is mounted by NFS.  Further, if the procedure is
more complicated, e.g. "cp -a .../symbolic-link/file-a ...; cp
-a .../symbolic-link/file-b ...; cp -a .../symbolic-link/file-c ...",
then a change to the symbolic link *can* affect the procedure
midstream.)

If the answer to the above is not definitely "yes, it's always
guaranteed", then I think it's best to set up whatever means
is appropriate to *designate* a given snapshot as the "latest"
and encourage everyone to use procedures that obtain that
designation only *once* per snapshot-grab.  In essence, copy
that designation to a local temporary variable that is thus
guaranteed to not change while the snapshot is obtained (using
that same temporary variable to specify the stuff being obtained).

        tq vm, (burley)



More information about the Gcc mailing list