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 _______________________________________________ Bug-cvs mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/bug-cvs
