Module Name:    src
Committed By:   christos
Date:           Mon Dec 19 04:37:13 UTC 2016

Modified Files:
        src/external/gpl2/xcvs/dist/src: update.c

Log Message:
add -t to preserve timestamps.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/external/gpl2/xcvs/dist/src/update.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/gpl2/xcvs/dist/src/update.c
diff -u src/external/gpl2/xcvs/dist/src/update.c:1.6 src/external/gpl2/xcvs/dist/src/update.c:1.7
--- src/external/gpl2/xcvs/dist/src/update.c:1.6	Sun Dec 18 22:15:31 2016
+++ src/external/gpl2/xcvs/dist/src/update.c	Sun Dec 18 23:37:13 2016
@@ -38,7 +38,7 @@
  * as well.
  */
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: update.c,v 1.6 2016/12/19 03:15:31 christos Exp $");
+__RCSID("$NetBSD: update.c,v 1.7 2016/12/19 04:37:13 christos Exp $");
 
 #include "cvs.h"
 #include <assert.h>
@@ -106,6 +106,7 @@ static int toss_local_changes = 0;
 static int force_tag_match = 1;
 static int update_build_dirs = 0;
 static int update_prune_dirs = 0;
+static int preserve_timestamps_on_update = 0;
 static int pipeout = 0;
 static int dotemplate = 0;
 #ifdef SERVER_SUPPORT
@@ -131,6 +132,7 @@ static const char *const update_usage[] 
     "\t-D date\tSet date to update from (is sticky).\n",
     "\t-j rev\tMerge in changes made between current revision and rev.\n",
     "\t-I ign\tMore files to ignore (! to reset).\n",
+    "\t-t Preserve timestamps on update.\n",
     "\t-W spec\tWrappers specification line.\n",
     "(Specify the --help global option for a list of other help options)\n",
     NULL
@@ -162,7 +164,7 @@ update (int argc, char **argv)
 
     /* parse the args */
     getoptreset ();
-    while ((c = getopt (argc, argv, "+ApCPflRQqduk:r:D:j:I:W:")) != -1)
+    while ((c = getopt (argc, argv, "+ApCPflRQqduk:r:tD:j:I:W:")) != -1)
     {
 	switch (c)
 	{
@@ -218,6 +220,9 @@ update (int argc, char **argv)
 		pipeout = 1;
 		noexec = 1;		/* so no locks will be created */
 		break;
+	    case 't':
+		preserve_timestamps_on_update = 1;
+		break;
 	    case 'j':
 		if (join_orig2)
 		    error (1, 0, "only two -j options can be specified");
@@ -281,6 +286,8 @@ update (int argc, char **argv)
 		send_arg("-C");
 	    if (update_prune_dirs)
 		send_arg("-P");
+	    if (preserve_timestamps_on_update)
+		send_arg("-t");
 	    client_prune_dirs = update_prune_dirs;
 	    option_with_arg ("-r", tag);
 	    if (options && options[0] != '\0')
@@ -1366,18 +1373,20 @@ VERS: ", 0);
 	    /* set the time from the RCS file iff it was unknown before */
 	    set_time =
 		(!noexec
-#if 0
 		/*
 		 * always pass the time to the client, and let it decide
 		 * if it is going to set the time
 		 */
-		 && (vers_ts->vn_user == NULL ||
+		 && (preserve_timestamps_on_update ||
+		     vers_ts->vn_user == NULL ||
 		     strncmp (vers_ts->ts_rcs, "Initial", 7) == 0)
-#endif
 		 && !file_is_dead);
+
 	    wrap_fromcvs_process_file (finfo->file);
+
 	    xvers_ts = Version_TS (finfo, options, tag, date, 
 				   force_tag_match, set_time);
+
 	    if (strcmp (xvers_ts->options, "-V4") == 0)
 		xvers_ts->options[0] = '\0';
 

Reply via email to