cvs-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Cvs-cvs] Changes to ccvs/src/client.c [signed-commits2]


From: Derek Robert Price
Subject: [Cvs-cvs] Changes to ccvs/src/client.c [signed-commits2]
Date: Fri, 02 Dec 2005 18:50:51 -0500

Index: ccvs/src/client.c
diff -u ccvs/src/client.c:1.433.4.15 ccvs/src/client.c:1.433.4.16
--- ccvs/src/client.c:1.433.4.15        Thu Dec  1 20:23:45 2005
+++ ccvs/src/client.c   Fri Dec  2 23:50:48 2005
@@ -1932,16 +1932,30 @@
             && strcmp (vn, "0") && *vn != '-')
     {
        /* On checkin, create the base file.  */
-       char *basefile = make_base_file_name (filename, vn);
        Node *n;
+       bool makebase = true;
        if ((n = findnode_fn (ent_list, filename)))
        {
+           /* This could be a readd of a locally removed file or, for
+            * instance, an update that changed keyword options without
+            * changing the revision number or the base file.
+            */
            Entnode *e = n->data;
-           base_remove (filename, e->version);
+           if (strcmp (vn, e->version))
+               /* The version number has changed.  */
+               base_remove (filename, e->version);
+           else
+               /* The version number has not changed.  */
+               makebase = false;
+       }
+       if (makebase)
+       {
+           /* A real checkin.  */
+           char *basefile = make_base_file_name (filename, vn);
+           mkdir_if_needed (CVSADM_BASE);
+           copy_file (filename, basefile);
+           free (basefile);
        }
-       mkdir_if_needed (CVSADM_BASE);
-       copy_file (filename, basefile);
-       free (basefile);
     }
 
     if (stored_mode)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]