On Aug 16th, 2007 I did a long post to gnu.cvs.bug titled "CVS soft-
tagging + other problems & solutions".
I got very little feedback on that post. I would like to get more
feedback on the main feature discussed there, called soft-tags/
branches, to see whether the public demand is worth the effort to
create a patch for this feature. This feature worked a miracle in
Jungo, so I'd hate to let it go
The code details in short:
in this patch (which includes many changes we use in Jungo LTD)
look inside file rcs.c
The code is based on CVS 1.12.13 + the changes from the newtags2
The feature described in short:
CVS tagging is done by adding symbol:revision pair inside RCS file.
When tagging a big source tree, this can take a very long time:
combined with intensive usage, we were getting to tagging times of 6-9
Instead of defining tag per each file, we define it as a location on a
parent branch. This assumes that work is done on a source tree that is
all updated (or checked out from the beginning) using that same
We added in CVSROOT directory a file called stags, keeping definitions
of soft-tags/branches. Definition defines type (tag or branch), name
and location (either parent branch + date or tag). Note that defining
one tag as based on another tag can also serve as an aliasing
Is it good for everyone ?
It's great for us :-)
With soft-tags, branching or tagging only takes the time it takes the
user to add the new tag/branch definition. For us, that means adding
it in a CSV text file named versions.csv and committing the change.
The change is then translated by the post-commit trigger that we have
to an updated stags file on the CVS server. This process (pre-commit
validation, commit, post-commit processing) takes ~10 seconds. Quite a
difference from what we had.
As for using it in your own environment:
- you need to be sure users work in the mode specified above, of
having their source code aligned to a single branch.
- you will need some infrastructure changes to support this, unless
you trust the users to edit the stags file directly. I will be happy
to help anyone who needs help in this.
Looking forward to any input/remarks/questions,
Jungo Software Technologies