Creating a tag
Jason Molenda
jason-gcclist@molenda.com
Sat Jun 22 21:51:00 GMT 2002
On Fri, Jun 21, 2002 at 06:10:31PM -0700, David O'Brien wrote:
> For FreeBSD we turn off the ability to commit during the tagging session.
This would speed up a tag if you're waiting for others' locks (as
Mark was).
> And also do the tagging on the same machine as the local repository.
This won't make any difference, unless access to the repository is
over NFS. The most common sort of tagging - tagging the head of
the trunk or a branch - can be done with 'rtag' which won't even
require a checkout on the user's system. (the normal 'cvs tag'
tags the versions of the files in your checkout, so in that case
cvs does examine the files on your local computer to get revision
#s.)
> In the case of GCC, if CVS wasn't so stupid to lock files during a `diff'
> or `update' operation you'd get a lot less of the "waiting for...". See
> the FreeBSD src/contrib/cvs for the "readonly" patches.
I looked at this patch a while back. cvs' file updates are atomic
on a file level, but not at a directory level. So it's entirely
possible for someone to make a change to foo.c and foo.h, and an
anoncvs read-only user doing an update at the same time could get
the new version of foo.c but the old version of foo.h.
If that tradeoff is accepted, then yes, it'll work fine. cvs only
locks directories at a time, so it's still possible for a checkin
to foo/bar.c and baz/bam.h to be half-seen by another user.
rsyncs of the repository ignore cvs locks altogether, so you've
got the same consistency problems as the read-only-users-don't-lock
setup.
It's been a while since I looked, but I don't think the OpenBSD
CDROM-repository patch (the FreeBSD readonly patches David refers
to are originally from OpenBSD) are selectable on a per-repository
basis; without modification I imagine this change would have to be
made for all repositories hosted on the site.
Jason
More information about the Gcc
mailing list