Larry Jones wrote:

> I'd like you to reconsider only printing patch failure/refetching
> messages when tracing.  That's not supposed to happen, so if it does, it
> indicates that something is seriously wrong -- I think we should let the
> user know so that the cause of the failure can be fixed.

Okay.  How's the attached patch look?  It also adds a warning in two
patch-failed cases which cause refetches but not, previously, warnings.

Regards,

Derek
-- 
Derek R. Price
CVS Solutions Architect
Ximbiot <http://ximbiot.com>
v: +1 717.579.6168
f: +1 717.234.3125
<[EMAIL PROTECTED]>
Index: src/client.c
===================================================================
RCS file: /cvsroot/cvs/ccvs/src/client.c,v
retrieving revision 1.435
diff -u -p -r1.435 client.c
--- src/client.c	16 Nov 2005 03:42:30 -0000	1.435
+++ src/client.c	16 Nov 2005 15:53:14 -0000
@@ -1646,6 +1646,9 @@ update_entries (void *data_arg, List *en
 	       or not based on whether the server supports "Rcs-diff".  
 
 	       Fall back to transmitting entire files.  */
+	    error (0, 0,
+		   "unsupported patch format received for `%s'; will refetch",
+		   short_pathname);
 	    patch_failed = 1;
 	}
 	else
@@ -1674,7 +1677,11 @@ update_entries (void *data_arg, List *en
 
 	    if (! rcs_change_text (short_pathname, filebuf, nread, buf, size,
 				   &patchedbuf, &patchedlen))
+	    {
+		error (0, 0, "patch failed for `%s'; will refetch",
+		       short_pathname);
 		patch_failed = 1;
+	    }
 	    else
 	    {
 		if (stored_checksum_valid)
@@ -1687,7 +1694,7 @@ update_entries (void *data_arg, List *en
 		    md5_buffer (patchedbuf, patchedlen, checksum);
 		    if (memcmp (checksum, stored_checksum, 16) != 0)
 		    {
-			TRACE (TRACE_FUNCTION,
+			error (0, 0,
 "checksum failure after patch to `%s'; will refetch",
 			       short_pathname);
 
@@ -1758,8 +1765,8 @@ update_entries (void *data_arg, List *en
 		    error (1, 0, "checksum failure on %s",
 			   short_pathname);
 
-		TRACE (TRACE_FUNCTION,
-		       "checksum failure after patch to %s; will refetch",
+		error (0, 0,
+		       "checksum failure after patch to `%s'; will refetch",
 		       short_pathname);
 
 		patch_failed = 1;
Index: src/sanity.sh
===================================================================
RCS file: /cvsroot/cvs/ccvs/src/sanity.sh,v
retrieving revision 1.1102
diff -u -p -r1.1102 sanity.sh
--- src/sanity.sh	16 Nov 2005 03:42:30 -0000	1.1102
+++ src/sanity.sh	16 Nov 2005 15:53:23 -0000
@@ -20563,7 +20563,10 @@ new revision: 1\.2; previous revision: 1
 	  # Now update the second copy.  When using remote CVS, the
 	  # patch will fail, forcing the file to be refetched.
 	  cd ../../2/first-dir
-	  dotest serverpatch-8 "$testcvs -q update" 'U file1'
+	  dotest serverpatch-8 "$testcvs -q update" 'U file1' \
+"$CPROG update: checksum failure after patch to \`\./file1'; will refetch
+$CPROG client: refetching unpatchable files
+U file1"
 
 	  dokeep
 	  cd ../..
@@ -24782,12 +24785,23 @@ new revision: 1\.3; previous revision: 1
 	  # 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"
+	  dotest keyword-21 "${testcvs} -q update -r tag1" "U file1" \
+"$CPROG update: checksum failure after patch to \`\./file1'; will refetch
+$CPROG client: refetching unpatchable files
+U file1"
 
 	  dotest keyword-22 "cat file1" '\$'"Name: tag1 "'\$'
 
-	  # Like serverpatch-8, a patch is refetched here.
-	  dotest keyword-23 "$testcvs update -A file1" "U file1"
+	  if $remote; then
+	    # Like serverpatch-8.  Not sure there is anything much we
+	    # can or should do about this.
+	    dotest keyword-23r "${testcvs} update -A file1" \
+"$CPROG update: checksum failure after patch to \`\./file1'; will refetch
+$CPROG client: refetching unpatchable files
+U file1"
+	  else
+	    dotest keyword-23 "${testcvs} update -A file1" "U file1"
+	  fi
 	  dotest keyword-24 "cat file1" '\$'"Name:  "'\$'"
 change"
 
@@ -25139,7 +25153,10 @@ new revision: 1\.4; previous revision: 1
 	  # 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"
+	  dotest keywordname-update-1 "${testcvs} -q up -rbr" "U file1" \
+"$CPROG update: checksum failure after patch to \`\./file1'; will refetch
+$CPROG client: refetching unpatchable files
+U file1"
 	  dotest keywordname-update-2 "cat file1" '\$'"Name: br "'\$'
 	  dotest keywordname-update-3 "cat file2" '\$'"Name:  "'\$'
 
@@ -25149,7 +25166,10 @@ new revision: 1\.4; previous revision: 1
 "T file1
 T file2"
 	  # FIXCVS - see note above keyword-21
-	  dotest keywordname-update-5 "$testcvs -q up -A" "U file1"
+	  dotest keywordname-update-5 "${testcvs} -q up -A" "U file1" \
+"$CPROG update: checksum failure after patch to \`\./file1'; will refetch
+$CPROG client: refetching unpatchable files
+U file1"
 	  dotest keywordname-update-6 "cat file1" \
 '\$'"Name:  "'\$'"
 new data"
@@ -25157,12 +25177,18 @@ new data"
 
 	  # 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"
+	  dotest keywordname-update-8 "${testcvs} -q up -rfirsttag" "U file1" \
+"$CPROG update: checksum failure after patch to \`\./file1'; will refetch
+$CPROG client: refetching unpatchable files
+U file1"
 	  dotest keywordname-update-9 "cat file1" '\$'"Name: firsttag "'\$'
 	  dotest keywordname-update-10 "cat file2" '\$'"Name:  "'\$'
 
 	  # And reverify the trunk update when the change is actually removed.
-	  dotest keywordname-update-11 "$testcvs -q up -A" "U file1"
+	  dotest keywordname-update-11 "${testcvs} -q up -A" "U file1" \
+"$CPROG update: checksum failure after patch to \`./file1'; will refetch
+$CPROG client: refetching unpatchable files
+U file1"
 	  dotest keywordname-update-12 "cat file1" \
 '\$'"Name:  "'\$'"
 new data"
Index: src/update.c
===================================================================
RCS file: /cvsroot/cvs/ccvs/src/update.c,v
retrieving revision 1.257
diff -u -p -r1.257 update.c
--- src/update.c	16 Nov 2005 03:42:30 -0000	1.257
+++ src/update.c	16 Nov 2005 15:53:24 -0000
@@ -325,7 +325,8 @@ update (int argc, char **argv)
 	    }
 	    else
 	    {
-		TRACE (TRACE_FUNCTION, "refetching unpatchable files\n");
+		fprintf (stderr, "%s client: refetching unpatchable files\n",
+			 program_name);
 
 		if (toplevel_wd != NULL
 		    && CVS_CHDIR (toplevel_wd) < 0)
_______________________________________________
Bug-cvs mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/bug-cvs

Reply via email to