User: mdb
Date: 03/03/04 18:42:11
Modified: src Tag: cvs1-11-x-branch ChangeLog rcs.c sanity.sh
Log:
Port the FreeBSD CVS_LOCAL_BRANCH_NUM feature into ccvs.
This patch was originally committed to the FreeBSD sources
on 1996-09-03 by Peter Wemm <peter@FreeBSD.org> and is used
a great deal by users of CVSup. For the original patch, see:
http://www.freebsd.org/cgi/cvsweb.cgi/src/contrib/cvs/src/rcs.c.diff?r1=1.1&r2=1.2
Revision Changes Path
No revision
http://ccvs.cvshome.org/source/browse/ccvs/src/Tag:
No revision
http://ccvs.cvshome.org/source/browse/ccvs/src/cvs1-11-x-branch
1.2336.2.21 +18 -0 ccvs/src/ChangeLog
http://ccvs.cvshome.org/source/browse/ccvs/src/ChangeLog.diff?r1=1.2336.2.20&r2=1.2336.2.21
(In the diff below, changes in quantity of whitespace are not shown.)
Index: ChangeLog
===================================================================
RCS file: /cvs/ccvs/src/ChangeLog,v
retrieving revision 1.2336.2.20
retrieving revision 1.2336.2.21
diff -u -b -r1.2336.2.20 -r1.2336.2.21
--- ChangeLog 4 Mar 2003 20:10:43 -0000 1.2336.2.20
+++ ChangeLog 5 Mar 2003 02:42:10 -0000 1.2336.2.21
@@ -1,3 +1,21 @@
+2003-03-03 Mark D. Baushke <mdb@cvshome.org>
+
+ * rcs.c (RCS_magicrev): CVS_LOCAL_BRANCH_NUM feature.
+ Port of the FreeBSD hack for setting the next magic branch number
+ to be used. The original patch was written by Peter Wemm
+ <peter@FreeBSD.org> and may be found by visiting the URL:
+
http://www.freebsd.org/cgi/cvsweb.cgi/src/contrib/cvs/src/rcs.c.diff?r1=1.1&r2=1.2
+ Implement a horrible (but simple) hack to allow some control over the
+ branch number that is assigned. This is specifically to support the
+ local commit feature of cvsup. If one sets $CVS_LOCAL_BRANCH_NUM to
+ (say) 1000 then branches the local repository, the revision numbers
+ will look like 1.66.1000.xx. This is almost a dead-set certainty that
+ there will be no conflicts with version numbers.
+ (This needs to be something more than an option to 'cvs tag' or 'cvs
+ rtag' as various parts of cvs "know" how to automatically branch files
+ (eg: cvs add). Trying to remember state is getting "Too Hard (TM)")
+ * sanity.sh (branches3): Test the CVS_LOCAL_BRANCH_NUM feature.
+
2003-03-04 Derek Price <derek@ximbiot.com>
* history.c (history_write): Remove unneeded O_CREAT in the call to
1.262.4.3 +14 -2 ccvs/src/rcs.c
http://ccvs.cvshome.org/source/browse/ccvs/src/rcs.c.diff?r1=1.262.4.2&r2=1.262.4.3
(In the diff below, changes in quantity of whitespace are not shown.)
Index: rcs.c
===================================================================
RCS file: /cvs/ccvs/src/rcs.c,v
retrieving revision 1.262.4.2
retrieving revision 1.262.4.3
diff -u -b -r1.262.4.2 -r1.262.4.3
--- rcs.c 26 Feb 2003 03:09:22 -0000 1.262.4.2
+++ rcs.c 5 Mar 2003 02:42:10 -0000 1.262.4.3
@@ -2496,13 +2496,25 @@
char *rev;
{
int rev_num;
- char *xrev, *test_branch;
+ char *xrev, *test_branch, *local_branch_num;
xrev = xmalloc (strlen (rev) + 14); /* enough for .0.number */
check_rev = xrev;
+ local_branch_num = getenv("CVS_LOCAL_BRANCH_NUM");
+ if (local_branch_num)
+ {
+ rev_num = atoi(local_branch_num);
+ if (rev_num < 2)
+ rev_num = 2;
+ else
+ rev_num &= ~1;
+ }
+ else
+ rev_num = 2;
+
/* only look at even numbered branches */
- for (rev_num = 2; ; rev_num += 2)
+ for ( ; ; rev_num += 2)
{
/* see if the physical branch exists */
(void) sprintf (xrev, "%s.%d", rev, rev_num);
1.752.2.9 +51 -1 ccvs/src/sanity.sh
http://ccvs.cvshome.org/source/browse/ccvs/src/sanity.sh.diff?r1=1.752.2.8&r2=1.752.2.9
(In the diff below, changes in quantity of whitespace are not shown.)
Index: sanity.sh
===================================================================
RCS file: /cvs/ccvs/src/sanity.sh,v
retrieving revision 1.752.2.8
retrieving revision 1.752.2.9
diff -u -b -r1.752.2.8 -r1.752.2.9
--- sanity.sh 26 Feb 2003 20:59:57 -0000 1.752.2.8
+++ sanity.sh 5 Mar 2003 02:42:10 -0000 1.752.2.9
@@ -675,7 +675,7 @@
tests="${tests} commit-add-missing"
# Branching, tagging, removing, adding, multiple directories
tests="${tests} rdiff diff death death2 rm-update-message rmadd rmadd2"
- tests="${tests} dirs dirs2 branches branches2 tagc tagf"
+ tests="${tests} dirs dirs2 branches branches2 branches3 tagc tagf"
tests="${tests} rcslib multibranch import importb importc"
tests="${tests} update-p import-after-initial branch-after-import"
tests="${tests} join join2 join3 join-readonly-conflict"
@@ -5687,6 +5687,56 @@
cd ../../..
rm -rf ${CVSROOT_DIRNAME}/first-dir
rm -r trunk b1a b1b
+ ;;
+
+ branches3)
+ mkdir ${CVSROOT_DIRNAME}/first-dir
+ mkdir branches3; cd branches3
+
+ dotest branches3-1 "${testcvs} -q co first-dir"
+ cd first-dir
+ echo "file1 first revision" > file1
+ dotest branches3-2 "${testcvs} add file1" \
+"${PROG} [a-z]*: scheduling file .file1. for addition
+${PROG} [a-z]*: use .${PROG} commit. to add this file permanently"
+ dotest branches3-3 "${testcvs} commit -m add file1" \
+"RCS file: ${CVSROOT_DIRNAME}/first-dir/file1,v
+done
+Checking in file1;
+${CVSROOT_DIRNAME}/first-dir/file1,v <-- file1
+initial revision: 1\.1
+done"
+
+ # Tag the file using a CVS_LOCAL_BRANCH_NUM of 1000
+ (CVS_LOCAL_BRANCH_NUM=1000 \
+ dotest branches3-4 "${testcvs} -q tag -b tag1" 'T file1')
+ dotest branches3-5 "${testcvs} -q log file1" \
+"
+RCS file: ${CVSROOT_DIRNAME}/first-dir/file1,v
+Working file: file1
+head: 1\.1
+branch:
+locks: strict
+access list:
+symbolic names:
+ tag1: 1\.1\.0\.1000
+keyword substitution: kv
+total revisions: 1; selected revisions: 1
+description:
+----------------------------
+revision 1.1
+date: [0-9/: ]*; author: ${username}; state: Exp;
+add
+============================================================================="
+
+ if $keep; then
+ echo Keeping ${TESTDIR} and exiting due to --keep
+ exit 0
+ fi
+
+ cd ../..
+ rm -rf ${CVSROOT_DIRNAME}/first-dir
+ rm -r branches3
;;
tagc)
---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@ccvs.cvshome.org
For additional commands, e-mail: cvs-help@ccvs.cvshome.org