[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
CVS Soft-tags enhancement - request for feedback
From: |
Yaron Yogev |
Subject: |
CVS Soft-tags enhancement - request for feedback |
Date: |
Tue, 6 May 2008 08:53:04 -0700 (PDT) |
User-agent: |
G2/1.0 |
Hi,
On Aug 16th, 2007 I did a long post to gnu.cvs.bug titled "CVS soft-
tagging + other problems & solutions".
http://groups.google.com/group/gnu.cvs.bug/msg/b62a6c86d8da8448?hl=en
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)
https://savannah.nongnu.org/file/cvs-1_12_13-jungo-improvements.diff?file_id=13668
look inside file rcs.c
look for:
- RCS_getsofttag
- RCS_locate_softtag_and_date
The code is based on CVS 1.12.13 + the changes from the newtags2
branch.
The feature described in short:
Why ?
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
hours.
How ?
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
branch.
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
mechanism.
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,
--
Yaron Yogev
IT Developer
Jungo Software Technologies
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- CVS Soft-tags enhancement - request for feedback,
Yaron Yogev <=