> Could you resubmit this patch with a test case, as per the HACKING > file > in the top level of the source distribution? > > Thanks, > > Derek
***CHANGELOG*** NEWS: Note rdiff reset timestamp fix for removed files. ***NEWS*** * The "cvs rdiff" command now resets the date in the patch headers of removed files. The patch utility expects the date to be reset to 0 (Jan. 1 1970 00:00:00 GMT) for removed files, otherwise it leaves zero-length files after applying the patch. The previous behaviour was to always use the RCS checkin date in the patch header, even for removed files. ***PATCH*** diff -urN cvs-1.11.1p1-orig/src/patch.c cvs-1.11.1p1-apc/src/patch.c --- cvs-1.11.1p1-orig/src/patch.c Tue Apr 24 14:14:53 2001 +++ cvs-1.11.1p1-apc/src/patch.c Tue Oct 22 12:37:06 2002 @@ -389,6 +389,8 @@ char *cp1, *cp2; FILE *fp; int line_length; + time_t nulltime = 0L; + char *nulldate; line1 = NULL; line1_chars_allocated = 0; @@ -645,6 +647,17 @@ goto out; } } + + /* If file was removed, reset the timestamp */ + if (!vers_head) + { + nulldate = ctime(&nulltime); + /* Fix non-standard format, like in vers_ts.c */ + nulldate[24] = 0; + if (nulldate[8] == '0') nulldate[8] = ' '; + (void) sprintf(cp2, "\t%s\n", nulldate); + } + assert (current_parsed_root != NULL); assert (current_parsed_root->directory != NULL); { ***TEST*** # test rdiff_reset_ts patch # rdiff should reset the patch timestamp to 0 for removed files mkdir testimport cd testimport echo "removeme" > removeme echo "completely" >> removeme dotest_sort rdiff-9.0-reset_ts-do_import \ "${testcvs} import -I ! -m reset-ts-import trdiff_reset_ts TRDIFF T9" \ ' N trdiff_reset_ts/removeme No conflicts created by this import' dotest rdiff-9.1-reset_ts-do_checkout \ "${testcvs} co trdiff_reset_ts" \ "${PROG}"' [a-z]*: Updating trdiff_reset_ts U trdiff_reset_ts/removeme' cd trdiff_reset_ts dotest rdiff-9.3-reset_ts-do_remove \ "${testcvs} rm -f removeme" \ "${PROG}"' [a-z]*: scheduling `removeme'\'' for removal '"${PROG}"' [a-z]*: use .'"${PROG}"' commit. to remove this file permanently' dotest rdiff-9.4-reset_ts-do_commit \ "${testcvs} commit -m reset-ts-commit removeme" \ "Removing removeme; ${CVSROOT_DIRNAME}/trdiff_reset_ts/removeme,v <-- removeme new revision: delete; previous revision: 1\.1\.1\.1 done" dotest rdiff-9.5-reset_ts-do_rdiff \ "${testcvs} rdiff -u -r1\.1 trdiff_reset_ts" \ "${PROG}"' [a-z]*: Diffing trdiff_reset_ts Index: trdiff_reset_ts/removeme diff -u trdiff_reset_ts/removeme:1\.1 trdiff_reset_ts/removeme:removed --- trdiff_reset_ts/removeme:1\.1 .* +++ trdiff_reset_ts/removeme .* 19\(69\|70\) @@ -1,2 +0,0 @@ -removeme -completely' cd ../.. rm -r testimport rm -rf ${CVSROOT_DIRNAME}/trdiff_reset_ts _______________________________________________ Bug-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-cvs