[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Cvs-cvs] ccvs/src ChangeLog classify.c sanity.sh [cvs1-11-x-branch]
From: |
Derek Robert Price |
Subject: |
[Cvs-cvs] ccvs/src ChangeLog classify.c sanity.sh [cvs1-11-x-branch] |
Date: |
Fri, 25 Aug 2006 20:27:05 +0000 |
CVSROOT: /cvsroot/cvs
Module name: ccvs
Branch: cvs1-11-x-branch
Changes by: Derek Robert Price <dprice> 06/08/25 20:27:03
Modified files:
src : ChangeLog classify.c sanity.sh
Log message:
[bug #17168]
* classify.c (Classify_file): Mark files with potential keyword
substitution changes as needing update.
* sanity.sh: Update to compensate.
(keyword, keywordname, serverpatch): Update to compensate, removing
the last few "checksum failed" tests.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/ccvs/src/ChangeLog?cvsroot=cvs&only_with_tag=cvs1-11-x-branch&r1=1.2336.2.468&r2=1.2336.2.469
http://cvs.savannah.gnu.org/viewcvs/ccvs/src/classify.c?cvsroot=cvs&only_with_tag=cvs1-11-x-branch&r1=1.25.4.4&r2=1.25.4.5
http://cvs.savannah.gnu.org/viewcvs/ccvs/src/sanity.sh?cvsroot=cvs&only_with_tag=cvs1-11-x-branch&r1=1.752.2.203&r2=1.752.2.204
Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/cvs/ccvs/src/ChangeLog,v
retrieving revision 1.2336.2.468
retrieving revision 1.2336.2.469
diff -u -b -r1.2336.2.468 -r1.2336.2.469
--- ChangeLog 25 Aug 2006 17:16:38 -0000 1.2336.2.468
+++ ChangeLog 25 Aug 2006 20:27:01 -0000 1.2336.2.469
@@ -1,5 +1,12 @@
2006-08-25 Derek Price <address@hidden>
+ [bug #17168]
+ * classify.c (Classify_file): Mark files with potential keyword
+ substitution changes as needing update.
+ * sanity.sh: Update to compensate.
+ (keyword, keywordname, serverpatch): Update to compensate, removing
+ the last few "checksum failed" tests.
+
* classify.c (Classify_File): Remove hacks which worked around checksum
failures from bug #17032.
Index: classify.c
===================================================================
RCS file: /cvsroot/cvs/ccvs/src/classify.c,v
retrieving revision 1.25.4.4
retrieving revision 1.25.4.5
diff -u -b -r1.25.4.4 -r1.25.4.5
--- classify.c 25 Aug 2006 17:16:39 -0000 1.25.4.4
+++ classify.c 25 Aug 2006 20:27:02 -0000 1.25.4.5
@@ -17,6 +17,50 @@
static void sticky_ck PROTO ((struct file_info *finfo, int aflag,
Vers_TS * vers));
+
+
+static inline int keywords_may_change PROTO ((int aflag, Vers_TS * vers));
+static inline int
+keywords_may_change (aflag, vers)
+ int aflag;
+ Vers_TS * vers;
+{
+ int retval;
+
+ if (/* Options are different... */
+ strcmp (vers->entdata->options, vers->options)
+ /* ...or... */
+ || (/* ...clearing stickies... */
+ aflag
+ /* ...and... */
+ && (/* ...there used to be a tag which subs in Name keys... */
+ (vers->entdata->tag && !isdigit (vers->entdata->tag[0]))
+ /* ...or there used to be a keyword mode which may be
+ * changed by -A...
+ */
+ || (strlen (vers->entdata->options)
+ && strcmp (vers->entdata->options, "-kkv")
+ && strcmp (vers->entdata->options, "-kb"))))
+ /* ...or... */
+ || (/* ...this is not commit... */
+ strcmp (cvs_cmd_name, "commit")
+ /* ...and... */
+ && (/* ...the tag is changing in a way that affects Name keys... */
+ (vers->entdata->tag && vers->tag
+ && strcmp (vers->entdata->tag, vers->tag)
+ && !(isdigit (vers->entdata->tag[0])
+ && isdigit (vers->entdata->tag[0])))
+ || (!vers->entdata->tag && vers->tag
+ && !isdigit (vers->tag[0])))))
+ retval = 1;
+ else
+ retval = 0;
+
+ return retval;
+}
+
+
+
/*
* Classify the state of a file
*/
@@ -297,16 +341,13 @@
*/
/* TODO: decide whether we need to check file permissions
for a mismatch, and return T_CONFLICT if so. */
- if (vers->entdata->options &&
- strcmp (vers->entdata->options, vers->options) != 0)
+ if (keywords_may_change (aflag, vers))
ret = T_CHECKOUT;
else if (vers->ts_conflict)
ret = T_CONFLICT;
else
- {
- sticky_ck (finfo, aflag, vers);
ret = T_UPTODATE;
- }
+ sticky_ck (finfo, aflag, vers);
}
else if (No_Difference (finfo, vers))
{
Index: sanity.sh
===================================================================
RCS file: /cvsroot/cvs/ccvs/src/sanity.sh,v
retrieving revision 1.752.2.203
retrieving revision 1.752.2.204
diff -u -b -r1.752.2.203 -r1.752.2.204
--- sanity.sh 24 Aug 2006 17:33:25 -0000 1.752.2.203
+++ sanity.sh 25 Aug 2006 20:27:02 -0000 1.752.2.204
@@ -2311,8 +2311,14 @@
${CVSROOT_DIRNAME}/first-dir/sdir/ssdir/ssfile,v <-- ssfile
new revision: 3\.1\.2\.1; previous revision: 3\.1
done"
+
+ # Verify that this file remains unchanged since up -A should not
+ # change the contents here.
+ cp ssfile $TESTDIR/ssfile.sav
# now get rid of the sticky tag and go back to the trunk
- dotest basica-8a5 "${testcvs} -q up -A ./" "[UP] ssfile"
+ dotest basica-8a5 "$testcvs -q up -A ./" '[UP] ssfile'
+ dotest basica-8a6 "cmp ssfile $TESTDIR/ssfile.sav"
+ rm $TESTDIR/ssfile.sav
cd ../..
dotest basica-8b "${testcvs} -q diff -r1.2 -r1.3"
@@ -4149,7 +4155,7 @@
initial revision: 1\.1
done"
dotest files-5 "${testcvs} -q tag -b C" "T tfile"
- dotest files-6 "${testcvs} -q update -r C" ""
+ dotest files-6 "$testcvs -q update -r C" "U tfile"
mkdir dir
dotest files-7 "${testcvs} add dir" \
"Directory ${CVSROOT_DIRNAME}/first-dir/dir added to the repository
@@ -5435,7 +5441,9 @@
T file4'
# Switch over to the branch.
- dotest death2-6 "${testcvs} -q update -r branch" ''
+ dotest death2-6 "$testcvs -q update -r branch" \
+'U file1
+U file4'
# Delete the file on the branch.
rm file1
@@ -5735,9 +5743,10 @@
${PLUS} first revision"
# now back to the trunk
- dotest death2-21 "${testcvs} -q update -A" \
-"U file2
-[UP] file4"
+ dotest death2-21 "$testcvs -q update -A" \
+'U file1
+U file2
+[UP] file4'
# test merging with a dead file
dotest death2-22 "${testcvs} -q co first-dir" \
@@ -6000,7 +6009,7 @@
"${testcvs} -q ci -r mynonbranch -m add file4" \
"${PROG} \[commit aborted\]: no such tag mynonbranch"
# Now make CVS write val-tags for real.
- dotest rmadd-20 "${testcvs} -q update -r mynonbranch file1" ""
+ dotest rmadd-20 "$testcvs -q update -r mynonbranch file1" 'U file1'
# Oops - CVS isn't distinguishing between a branch tag and
# a non-branch tag.
dotest rmadd-21 \
@@ -6084,9 +6093,10 @@
done"
# lose the branch
- dotest rmadd-29 "${testcvs} -q up -A" \
-"${PROG} update: file3 is no longer in the repository
-${PROG} update: file4 is no longer in the repository"
+ dotest rmadd-29 "$testcvs -q up -A" \
+"U file1
+$PROG update: file3 is no longer in the repository
+$PROG update: file4 is no longer in the repository"
# -f disables recursion
dotest rmadd-30 "${testcvs} -q ci -f -r9 -m." \
@@ -6656,9 +6666,12 @@
T file2
T file3
T file4'
- dotest branches-5 "${testcvs} update -r br1" \
-"${PROG} update: Updating \.
-M file1"
+ dotest branches-5 "$testcvs update -r br1" \
+"$PROG update: Updating \.
+M file1
+U file2
+U file3
+U file4"
echo 2:br1 >file2
echo 4:br1 >file4
dotest branches-6 "${testcvs} -q ci -m modify" \
@@ -6678,7 +6691,11 @@
T file2
T file3
T file4'
- dotest branches-8 "${testcvs} -q update -r brbr" ''
+ dotest branches-8 "$testcvs -q update -r brbr" \
+'U file1
+U file2
+U file3
+U file4'
echo 1:brbr >file1
echo 4:brbr >file4
dotest branches-9 "${testcvs} -q ci -m modify" \
@@ -6694,9 +6711,11 @@
2:br1
3:ancest
4:brbr'
- dotest branches-11 "${testcvs} -q update -r br1" \
-'[UP] file1
-[UP] file4'
+ dotest branches-11 "$testcvs -q update -r br1" \
+'U file1
+U file2
+U file3
+U file4'
dotest branches-12 "cat file1 file2 file3 file4" '1:br1
2:br1
3:ancest
@@ -6707,9 +6726,11 @@
${CVSROOT_DIRNAME}/first-dir/file4,v <-- file4
new revision: 1\.2\.2\.2; previous revision: 1\.2\.2\.1
done"
- dotest branches-13 "${testcvs} -q update -A" '[UP] file1
-[UP] file2
-[UP] file4'
+ dotest branches-13 "${testcvs} -q update -A" \
+'U file1
+U file2
+U file3
+U file4'
dotest branches-14 "cat file1 file2 file3 file4" '1:ancest
2:ancest
3:ancest
@@ -7243,8 +7264,9 @@
# to return to the state of being on the trunk with a $file
# that we can then remove.
dotest update-p-undead-0 "$testcvs update -A" \
-"${PROG} update: Updating \.
-${PROG} update: warning: new-born $file has disappeared"
+"$PROG update: Updating \.
+$PROG update: warning: new-born $file has disappeared
+U unused-file"
dotest update-p-undead-1 "$testcvs update" \
"${PROG} update: Updating \.
U $file"
@@ -7303,7 +7325,9 @@
# Now create a branch and commit a revision there.
dotest tagf-5 "${testcvs} -q tag -b br" "T file1
T file2"
- dotest tagf-6 "${testcvs} -q update -r br" ""
+ dotest tagf-6 "$testcvs -q update -r br" \
+'U file1
+U file2'
echo brmod >> file1
echo brmod >> file2
dotest tagf-7 "${testcvs} -q ci -m modify" \
@@ -8063,7 +8087,7 @@
dotest multibranch-5 "${testcvs} tag -b br2" \
"${PROG} tag: Tagging \.
T file1"
- dotest multibranch-6 "${testcvs} -q update -r br1" ''
+ dotest multibranch-6 "$testcvs -q update -r br1" 'U file1'
echo on-br1 >file1
dotest multibranch-7 "${testcvs} -q ci -m modify-on-br1" \
"Checking in file1;
@@ -8235,10 +8259,12 @@
============================================================================="
# update into the vendor branch.
- dotest import-102 "${testcvs} update -rvendor-branch" \
-"${PROG} update: Updating .
-[UP] imported-f1
-[UP] imported-f2"
+ dotest import-102 "$testcvs update -rvendor-branch" \
+"$PROG update: Updating .
+U imported-f1
+[UP] imported-f2
+U imported-f3
+U imported-f4"
# remove file4 on the vendor branch
rm imported-f4
@@ -8255,9 +8281,10 @@
done"
# update to main line
- dotest import-105 "${testcvs} -q update -A" \
-"${PROG} update: imported-f1 is no longer in the repository
-[UP] imported-f2"
+ dotest import-105 "$testcvs -q update -A" \
+"$PROG update: imported-f1 is no longer in the repository
+[UP] imported-f2
+U imported-f3"
# second import - file4 deliberately unchanged
cd ../import-dir
@@ -8302,16 +8329,20 @@
done
# check vendor branch for file4
- dotest import-110 "${testcvs} -q update -rvendor-branch" \
-"[UP] imported-f1
-[UP] imported-f2"
+ dotest import-110 "$testcvs -q update -rvendor-branch" \
+'U imported-f1
+[UP] imported-f2
+U imported-f3
+U imported-f4'
dotest import-111 "test -f imported-f4" ''
# update to main line
- dotest import-112 "${testcvs} -q update -A" \
-"${PROG} update: imported-f1 is no longer in the repository
-[UP] imported-f2"
+ dotest import-112 "$testcvs -q update -A" \
+"$PROG update: imported-f1 is no longer in the repository
+[UP] imported-f2
+U imported-f3
+U imported-f4"
cd ..
@@ -8499,7 +8530,12 @@
echo modify >>cdir/cfile
dotest importc-5 \
"${testcvs} -q rtag -b -r release wip_test first-dir" ""
- dotest importc-6 "${testcvs} -q update -r wip_test" "M cdir/cfile"
+ dotest importc-6 "$testcvs -q update -r wip_test" \
+'U adir/sub1/file1
+U adir/sub1/ssdir/ssfile
+U adir/sub2/file2
+U bdir/subdir/file1
+M cdir/cfile'
# This used to fail in local mode
dotest importc-7 "${testcvs} -q ci -m modify -r wip_test" \
@@ -8776,8 +8812,9 @@
"${testcvs} tag -b TESTTOTRON file1" \
'T file1'
dotest branch-after-import-4 \
-"${testcvs} -q update -r TESTTOTRON" \
-"${PROG} update: file2 is no longer in the repository"
+"$testcvs -q update -r TESTTOTRON" \
+"U file1
+$PROG update: file2 is no longer in the repository"
cp ../imp-dir/file2 .
dotest branch-after-import-5 \
@@ -9238,7 +9275,11 @@
T file3
T file4
T file7"
- dotest join-27 "${testcvs} -q update -r br2" ""
+ dotest join-27 "$testcvs -q update -r br2" \
+'U file2
+U file3
+U file4
+U file7'
# The handling of file8 and file9 here look fishy to me. I don't
# see why it should be different from the case where we merge to
# the trunk (e.g. join-23).
@@ -9385,7 +9426,7 @@
initial revision: 1\.1
done"
dotest join2-5 "${testcvs} -q tag -b br1" "T file1"
- dotest join2-6 "${testcvs} -q update -r br1" ""
+ dotest join2-6 "$testcvs -q update -r br1" 'U file1'
echo 'modify on branch' >>file1
touch bradd
dotest join2-6a "${testcvs} add bradd" \
@@ -9502,7 +9543,7 @@
initial revision: 1\.1
done"
dotest join3-5 "${testcvs} -q tag -b br1" "T file1"
- dotest join3-6 "${testcvs} -q update -r br1" ""
+ dotest join3-6 "$testcvs -q update -r br1" 'U file1'
echo 'br1:line1' >>file1
dotest join3-7 "${testcvs} -q ci -m modify" \
"Checking in file1;
@@ -10174,7 +10215,8 @@
done"
dotest join-readonly-conflict-4 "$testcvs tag -b B $file" "T $file"
- dotest join-readonly-conflict-5 "$testcvs -q update -rB $file" ''
+ dotest join-readonly-conflict-5 "$testcvs -q update -rB $file" \
+"U $file"
echo branch B > $file
dotest join-readonly-conflict-6 "$testcvs -q ci -m . $file" \
"Checking in $file;
@@ -10507,7 +10549,11 @@
#
# FIXCVS: This update should merge the removal to the trunk. It does
# not.
- dotest join-rm-5 "$testcvs -q up -A" "U a"
+ dotest join-rm-5 "$testcvs -q up -A" \
+'U a
+U c
+U e
+U f'
# and verify that there is no sticky tag
dotest join-rm-6 "$testcvs status a" \
@@ -15141,7 +15187,9 @@
done"
dotest editor-5 "${testcvs} -q tag -b br" "T file1
T file2"
- dotest editor-6 "${testcvs} -q update -r br" ''
+ dotest editor-6 "$testcvs -q update -r br" \
+'U file1
+U file2'
echo modify >>file1
dotest editor-7 "${testcvs} -e ${TESTDIR}/editme -q ci" \
"Checking in file1;
@@ -15153,7 +15201,9 @@
# without being on the branch, because there is not a revision
# already on the branch. If there were a revision on the branch,
# CVS would correctly give an up-to-date check failed.
- dotest editor-8 "${testcvs} -q update -A" "U file1"
+ dotest editor-8 "$testcvs -q update -A" \
+'U file1
+U file2'
echo add a line >>file2
dotest editor-9 "${testcvs} -q -e ${TESTDIR}/editme ci -rbr file2" \
"Checking in file2;
@@ -16596,7 +16646,8 @@
new revision: 1\.1\.2\.2; previous revision: 1\.1\.2\.1
done"
dotest ignore-on-branch-6 "$testcvs -q up -rbranch2" \
-"${PROG} update: file2 is no longer in the repository"
+"U file1
+$PROG update: file2 is no longer in the repository"
dotest ignore-on-branch-7 "$testcvs -q up -jbranch" 'U file2'
cd ../..
@@ -16967,7 +17018,10 @@
dotest binfiles2-2 "${testcvs} -q tag -b br" 'T brmod
T brmod-trmod
T brmod-wdmod'
- dotest binfiles2-3 "${testcvs} -q update -r br" ''
+ dotest binfiles2-3 "$testcvs -q update -r br" \
+'U brmod
+U brmod-trmod
+U brmod-wdmod'
cp ../binfile binfile.dat
dotest binfiles2-4 "${testcvs} add -kb binfile.dat" \
"${PROG} add: scheduling file .binfile\.dat. for addition on branch .br.
@@ -17250,7 +17304,11 @@
T brmod
T brmod-trmod
T brmod-wdmod'
- dotest mcopy-3 "${testcvs} -q update -r br" ''
+ dotest mcopy-3 "$testcvs -q update -r br" \
+'U .cvswrappers
+U brmod
+U brmod-trmod
+U brmod-wdmod'
echo 'modify brmod on br' >brmod
echo 'modify brmod-trmod on br' >brmod-trmod
echo 'modify brmod-wdmod on br' >brmod-wdmod
@@ -17267,10 +17325,11 @@
${CVSROOT_DIRNAME}/first-dir/brmod-wdmod,v <-- brmod-wdmod
new revision: 1\.1\.2\.1; previous revision: 1\.1
done"
- dotest mcopy-6 "${testcvs} -q update -A" \
-"[UP] brmod
-[UP] brmod-trmod
-[UP] brmod-wdmod"
+ dotest mcopy-6 "$testcvs -q update -A" \
+'U .cvswrappers
+U brmod
+U brmod-trmod
+U brmod-wdmod'
dotest mcopy-7 "cat brmod brmod-trmod brmod-wdmod" \
"brmod initial contents
brmod-trmod initial contents
@@ -18193,7 +18252,7 @@
done"
dotest taginfo-6 "${testcvs} -q tag tag1" "T file1"
dotest taginfo-7 "${testcvs} -q tag -b br" "T file1"
- dotest taginfo-8 "${testcvs} -q update -r br" ""
+ dotest taginfo-8 "$testcvs -q update -r br" 'U file1'
echo add text on branch >>file1
dotest taginfo-9 "${testcvs} -q ci -m modify-on-br" \
"Checking in file1;
@@ -18343,9 +18402,10 @@
dotest serverpatch-5 "${testcvs} -q co -r tag first-dir" \
'U first-dir/file1'
- # Remove the tag. This will leave the tag string in the
+ # Remove the tag. Prior to 1.11.23, this left the tag string in the
# expansion of the Name keyword.
- dotest serverpatch-6 "${testcvs} -q update -A first-dir" ''
+ dotest serverpatch-6 "$testcvs -q update -A first-dir" \
+'U first-dir/file1'
# Modify and check in the first copy.
cd ../1/first-dir
@@ -18356,16 +18416,11 @@
new revision: 1\.2; previous revision: 1\.1
done"
- # Now update the second copy. When using remote CVS, the
- # patch will fail, forcing the file to be refetched.
+ # Now update the second copy. Prior to 1.11.23, the patch would fail
+ # using remote CVS, forcing the file to be refetched.
cd ../../2/first-dir
dotest serverpatch-8 "${testcvs} -q update" \
-'U file1' \
-"P file1
-${PROG} update: checksum failure after patch to \./file1; will refetch
-${PROG} client: refetching unpatchable files
-${PROG} update: warning: file1 was lost
-U file1"
+'[UP] file1'
cd ../..
rm -r 1 2
@@ -20217,7 +20272,7 @@
# Check in a revision on the branch to force CVS to
# interpret every revision in the file.
- dotest rcs-6a "${testcvs} -q update -r branch file2" ""
+ dotest rcs-6a "$testcvs -q update -r branch file2" 'U file2'
echo "next branch revision" > file2
dotest rcs-6b "${testcvs} -q ci -m mod file2" \
"Checking in file2;
@@ -20961,7 +21016,8 @@
(sleep 5; rmdir "$TESTDIR/locks/CVSROOT/#cvs.val-tags.lock")&
dotest lockfiles-22 "$testcvs -q up -r newtag first-dir" \
"$PROG update: \[[0-9:]*\] waiting for $username's lock in
$CVSROOT_DIRNAME/CVSROOT
-$PROG update: \[[0-9:]*\] obtained lock in $CVSROOT_DIRNAME/CVSROOT"
+$PROG update: \[[0-9:]*\] obtained lock in $CVSROOT_DIRNAME/CVSROOT
+U first-dir/sdir/ssdir/file1"
cd CVSROOT
echo "# nobody here but us comments" >config
@@ -21680,7 +21736,9 @@
# set the same way (it is a different code path in CVS).
dotest modes-11 "${testcvs} -q tag -b br" 'T aa
T ab'
- dotest modes-12 "${testcvs} -q update -r br" ''
+ dotest modes-12 "$testcvs -q update -r br" \
+'U aa
+U ab'
touch ac
dotest modes-13 "${testcvs} add ac" \
"${PROG} add: scheduling file .ac. for addition on branch .br.
@@ -22429,7 +22487,7 @@
1\.1 locked
done"
- dotest keyword-7 "${testcvs} update -kkv file1" "U file1"
+ dotest keyword-7 "$testcvs update -kkv file1" 'U file1'
dotest keyword-8 "cat file1" \
'\$'"Author: ${username} "'\$'"
"'\$'"Date: [0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]
[0-9][0-9]:[0-9][0-9]:[0-9][0-9] "'\$'"
@@ -22449,7 +22507,7 @@
xx add
xx"
- dotest keyword-9 "${testcvs} update -kkvl file1" "U file1"
+ dotest keyword-9 "$testcvs update -kkvl file1" '[UP] file1'
dotest keyword-10 "cat file1" \
'\$'"Author: ${username} "'\$'"
"'\$'"Date: [0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]
[0-9][0-9]:[0-9][0-9]:[0-9][0-9] "'\$'"
@@ -22469,7 +22527,7 @@
xx add
xx"
- dotest keyword-11 "${testcvs} update -kk file1" "U file1"
+ dotest keyword-11 "${testcvs} update -kk file1" '[UP] file1'
dotest keyword-12 "cat file1" \
'\$'"Author"'\$'"
"'\$'"Date"'\$'"
@@ -22489,7 +22547,7 @@
xx add
xx"
- dotest keyword-13 "${testcvs} update -kv file1" "U file1"
+ dotest keyword-13 "$testcvs update -kv file1" '[UP] file1'
dotest keyword-14 "cat file1" \
"${username}
[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]
@@ -22543,16 +22601,10 @@
${CVSROOT_DIRNAME}/first-dir/file1,v <-- file1
new revision: 1\.3; previous revision: 1\.2
done"
- # FIXCVS - These unpatchable files are happening because the tag
- # associated with the current base version of the file in the
- # sandbox is not available in these cases. See the note in the
- # patch_file function in update.c.
- dotest keyword-21 "${testcvs} -q update -r tag1" "U file1" \
-"P file1
-${PROG} update: checksum failure after patch to \./file1; will refetch
-${PROG} client: refetching unpatchable files
-${PROG} update: warning: file1 was lost
-U file1"
+
+ # Prior to 1.11.23, remote CVS would fail the patch checksum test
+ # and refetch the file here, failing this test.
+ dotest keyword-21 "$testcvs -q update -r tag1" 'U file1'
dotest keyword-22 "cat file1" '\$'"Name: tag1 "'\$'
@@ -22824,8 +22876,17 @@
${CVSROOT_DIRNAME}/first-dir/file2,v <-- file2
initial revision: 1\.3
done"
+ dotest keywordname-init-5b "cat file1" \
+'\$''Name: \$'
+ dotest keywordname-init-5c "cat file2" \
+'\$''Name: \$'
+
+ dotest keywordname-init-6 "$testcvs -q up -A"
+ dotest keywordname-init-6b "cat file1" \
+'\$''Name: \$'
+ dotest keywordname-init-6c "cat file2" \
+'\$''Name: \$'
- dotest keywordname-init-6 "${testcvs} -q up -A"
dotest keywordname-init-7 "${testcvs} -q tag -b br" \
"T file1
T file2"
@@ -22842,59 +22903,53 @@
# There used to be a bug where static tags would be substituted for
# Name keywords but not branch tags.
#
- # FIXCVS - BUG
- # Why shouldn't the non-update case not cause a substitution?
- # An update -kk or -A will unsub and sub keywords without updates
- # being required.
- # FIXCVS - see note above keyword-21
- dotest keywordname-update-1 "${testcvs} -q up -rbr" "U file1" \
-"P file1
-${PROG} update: checksum failure after patch to \./file1; will refetch
-${PROG} client: refetching unpatchable files
-${PROG} update: warning: file1 was lost
-U file1"
- dotest keywordname-update-2 "cat file1" '\$'"Name: br "'\$'
- dotest keywordname-update-3 "cat file2" '\$'"Name: "'\$'
+ # Prior to 1.11.23, there also used to be a bug where keyword
+ # substitutions were not performed unless the file was otherwise
+ # updated. When this bug was present, keywordname-update-1 would
+ # report a patch checksum failure and refetch file1 in client/server
+ # mode and no `br' would have been substituted into Name's value for
+ # file2, meaning keywordname-update-3 would also fail.
+ dotest keywordname-update-1 "$testcvs -q up -rbr" \
+'U file1
+U file2'
+ dotest keywordname-update-2 "cat file1" '\$''Name: br \$'
+
+ # For the same reason keywordname-update-1 would fail above, no `br'
+ # would have been substituted into Name's value here prior to
+ # 1.11.23.
+ dotest keywordname-update-3 "cat file2" '\$''Name: br \$'
# Now verify that updating to the trunk leaves no substitution for
# $Name
dotest keywordname-update-4 "${testcvs} -q tag firsttag" \
"T file1
T file2"
- # FIXCVS - see note above keyword-21
- dotest keywordname-update-5 "${testcvs} -q up -A" "U file1" \
-"P file1
-${PROG} update: checksum failure after patch to \./file1; will refetch
-${PROG} client: refetching unpatchable files
-${PROG} update: warning: file1 was lost
-U file1"
+ # This used to fail in the same manner as keywordname-update-1.
+ dotest keywordname-update-5 "$testcvs -q up -A" \
+'U file1
+U file2'
dotest keywordname-update-6 "cat file1" \
-'\$'"Name: "'\$'"
-new data"
- dotest keywordname-update-7 "cat file2" '\$'"Name: "'\$'
-
- # But updating to a static tag does cause a substitution
- # FIXCVS - see same note above
- dotest keywordname-update-8 "${testcvs} -q up -rfirsttag" "U file1" \
-"P file1
-${PROG} update: checksum failure after patch to \./file1; will refetch
-${PROG} client: refetching unpatchable files
-${PROG} update: warning: file1 was lost
-U file1"
- dotest keywordname-update-9 "cat file1" '\$'"Name: firsttag "'\$'
- dotest keywordname-update-10 "cat file2" '\$'"Name: "'\$'
+'\$''Name: \$
+new data'
+ dotest keywordname-update-7 "cat file2" '\$''Name: \$'
+
+ # This used to fail in the same manner as keywordname-update-1.
+ dotest keywordname-update-8 "$testcvs -q up -rfirsttag" \
+'U file1
+U file2'
+ dotest keywordname-update-9 "cat file1" '\$''Name: firsttag \$'
+
+ # This used to fail in the same manner as keywordname-update-3.
+ dotest keywordname-update-10 "cat file2" '\$''Name: firsttag \$'
# And reverify the trunk update when the change is actually removed.
- dotest keywordname-update-11 "${testcvs} -q up -A" "[UP] file1" \
-"P file1
-${PROG} update: checksum failure after patch to ./file1; will refetch
-${PROG} client: refetching unpatchable files
-${PROG} update: warning: file1 was lost
-U file1"
+ dotest keywordname-update-11 "$testcvs -q up -A" \
+'U file1
+U file2'
dotest keywordname-update-12 "cat file1" \
-'\$'"Name: "'\$'"
-new data"
- dotest keywordname-update-13 "cat file2" '\$'"Name: "'\$'
+'\$''Name: \$
+new data'
+ dotest keywordname-update-13 "cat file2" '\$''Name: \$'
cd ../..
@@ -22988,7 +23043,9 @@
new revision: 1\.2; previous revision: 1\.1
done"
- dotest keyword2-9 "${testcvs} -q update -r branch" '[UP] file1'
+ dotest keyword2-9 "$testcvs -q update -r branch" \
+'U binfile\.dat
+[UP] file1'
echo "what else do we have?" >>file1
dotest keyword2-10 "${testcvs} -q ci -m change" \
@@ -22998,9 +23055,10 @@
done"
# Okay, first a conflict in file1 - should be okay with binfile.dat
- dotest keyword2-11 "${testcvs} -q update -A -j branch" \
-"U file1
-RCS file: ${CVSROOT_DIRNAME}/first-dir/file1,v
+ dotest keyword2-11 "$testcvs -q update -A -j branch" \
+"U binfile\.dat
+U file1
+RCS file: $CVSROOT_DIRNAME/first-dir/file1,v
retrieving revision 1\.1
retrieving revision 1\.1\.2\.1
Merging differences between 1\.1 and 1\.1\.2\.1 into file1
@@ -23049,7 +23107,9 @@
dotest keyword2-17 "${testcvs} -q tag -b branch2" \
"T binfile\.dat
T file1"
- dotest keyword2-18 "${testcvs} -q update -r branch2" ''
+ dotest keyword2-18 "$testcvs -q update -r branch2" \
+'U binfile\.dat
+U file1'
${AWK} 'BEGIN { printf "address@hidden", 2, 10, 137, 13, 10 }' \
</dev/null | ${TR} '@' '\000' >>binfile.dat
@@ -23116,7 +23176,9 @@
done"
dotest head-6 "${testcvs} -q tag -b br1" "T file1
T file2"
- dotest head-7 "${testcvs} -q update -r br1" ""
+ dotest head-7 "$testcvs -q update -r br1" \
+'U file1
+U file2'
echo 'modify on branch' >>file1
dotest head-8 "${testcvs} -q ci -m modify" \
"Checking in file1;
@@ -23132,7 +23194,9 @@
new revision: 1\.3\.2\.2; previous revision: 1\.3\.2\.1
done"
# With no sticky tags, HEAD is the head of the trunk.
- dotest head-trunk-setup "${testcvs} -q update -A" "[UP] file1"
+ dotest head-trunk-setup "$testcvs -q update -A" \
+'[UP] file1
+U file2'
dotest head-trunk-update "${testcvs} -q update -r HEAD -p file1" \
"imported contents
add a line on trunk
@@ -23158,7 +23222,9 @@
${PLUS} modify on branch after brtag"
# With a branch sticky tag, HEAD is the head of the trunk.
- dotest head-br1-setup "${testcvs} -q update -r br1" "[UP] file1"
+ dotest head-br1-setup "$testcvs -q update -r br1" \
+'[UP] file1
+U file2'
dotest head-br1-update "${testcvs} -q update -r HEAD -p file1" \
"imported contents
add a line on trunk
@@ -23169,7 +23235,9 @@
# With a nonbranch sticky tag on a branch,
# HEAD is the head of the trunk
- dotest head-brtag-setup "${testcvs} -q update -r brtag" "[UP] file1"
+ dotest head-brtag-setup "$testcvs -q update -r brtag" \
+'[UP] file1
+U file2'
dotest head-brtag-update "${testcvs} -q update -r HEAD -p file1" \
"imported contents
add a line on trunk
@@ -23182,8 +23250,9 @@
# With a nonbranch sticky tag on the trunk, HEAD is the head
# of the trunk, I think.
- dotest head-trunktag-setup "${testcvs} -q update -r trunktag" \
-"[UP] file1"
+ dotest head-trunktag-setup "$testcvs -q update -r trunktag" \
+'[UP] file1
+U file2'
dotest head-trunktag-check "cat file1" "imported contents
add a line on trunk"
dotest head-trunktag-update "${testcvs} -q update -r HEAD -p file1" \
@@ -23740,7 +23809,9 @@
dotest multibranch2-6 "${testcvs} -q tag -b B" "T file1
T file2"
- dotest multibranch2-7 "${testcvs} -q update -r B" ''
+ dotest multibranch2-7 "$testcvs -q update -r B" \
+'U file1
+U file2'
echo branch-B >file1
echo branch-B >file2
dotest multibranch2-8 "${testcvs} -q ci -m modify-on-B" \
@@ -23983,7 +24054,9 @@
done"
dotest admin-7 "${testcvs} -q tag -b br" "T file1
T file2"
- dotest admin-8 "${testcvs} -q update -r br" ""
+ dotest admin-8 "$testcvs -q update -r br" \
+'U file1
+U file2'
echo 'add a line on the branch' >> file1
echo 'add a file on the branch' >> file3
dotest admin-9a "${testcvs} -q add file3" \
@@ -23999,9 +24072,10 @@
${CVSROOT_DIRNAME}/first-dir/Attic/file3,v <-- file3
new revision: 1\.1\.2\.1; previous revision: 1\.1
done"
- dotest admin-10 "${testcvs} -q update -A" \
+ dotest admin-10 "$testcvs -q update -A" \
"U file1
-${PROG} update: file3 is no longer in the repository"
+U file2
+$PROG update: file3 is no longer in the repository"
# Check that we can administer files in the repository that
# aren't in the working directory.
@@ -25103,7 +25177,7 @@
"mv a-lock,v ${CVSROOT_DIRNAME}/first-dir/a-lock,v" ""
chmod 444 ${CVSROOT_DIRNAME}/first-dir/a-lock,v
dotest reserved-17 "${testcvs} -q tag -b br a-lock" "T a-lock"
- dotest reserved-18 "${testcvs} -q update -r br a-lock" ""
+ dotest reserved-18 "$testcvs -q update -r br a-lock" 'U a-lock'
echo edit it >>a-lock
dotest reserved-19 "${testcvs} -q ci -m modify a-lock" \
"Checking in a-lock;
- [Cvs-cvs] ccvs/src ChangeLog classify.c sanity.sh [cvs1-11-x-branch],
Derek Robert Price <=