bugConcurrent Versions System - Bugs: bug #17565, update -A removes conflict

 
 

bug #17565: update -A removes conflict

Submitter:  None
Submitted:  Tue 29 Aug 2006 01:29:57 PM UTC
Votes: 31
 
Category:  Bug Fix (patch attached) Severity:  3 - Normal
Item Group:  None Status:  Fixed
Privacy:  Public Assigned to:  dprice
Open/Closed:  Closed Release:  1.11.23
Fixed Release:  1.11.24 Fixed Feature Release:  1.12.14
* Mandatory Fields

Add a New Comment Rich Markup
   

Fri 12 Sep 2008 03:49:22 PM UTC, comment #4: 

Verified and applied attached patch.  Closing.

Derek Robert Price <dprice>
Group administrator
Fri 09 May 2008 03:07:26 PM UTC, comment #3: 

Applied conflict.patch and it passed 'make check'.

(file #15643)

Eugen Zglimbea <eugenzglimbea>
Thu 21 Sep 2006 11:40:34 AM UTC, comment #2: 

Sorry for posting as anonymous and thanks for your comment. I'm new to Savannah, not to CVS. I first emailed to -email is unavailable- without any reaction.
I'm not using cvsnt. -kx stands for the different substitutions modes -kk, -kkv, -kb, -ko, etc. (Ok not very clever but I didn't know -kx is used in cvsnt) Oh, and I used a wrong terminology, I meant sticky '-k' options when writing about sticky tags.

I used before Version 1.11.13 where cvs update -A leaves files with conflicts as they are.
In the manual
http://ximbiot.com/cvs/manual/cvs-1.11.22/cvs_16.html#SEC154
the description for update -A is
"Reset any sticky tags, dates, or `-k' options. Does not reset sticky `-k' options on modified files. See Sticky tags, for more information on sticky tags/dates."
So I still think it's a bug.

Susanne Bertling <susbert>
Fri 01 Sep 2006 06:14:32 AM UTC, comment #1: 

The reference to cvs update -kx makes me think that perhaps this user is really using CVSNT/TortoiseCVS/WinCVS.  Savannah CVS does not have a -kx switch:
http://ximbiot.com/cvs/manual/cvs-1.11.22/cvs_12.html#SEC101
versus:
http://www.cvsnt.org/manual/html/Substitution-modes.html

If so you should contact the CVSNT newsgroup.

Also I think that "cvs update -A" has never paid attention to conflicts in the file, if the file had a sticky tag, it's cleared and updated to the new version.  If you are new to CVS I suggest you ask questions on the newsgroup - not simply post bugs.

Finally - using a real username/email address will make it easier for people to contact you to help you.

Arthur Barrett <arthurba>
Group Member
Tue 29 Aug 2006 01:29:57 PM UTC, original submission:  

CVS 1.11.22:
Different sticky tags causes a file to be updated regardless of conflict:

cvs update -kk -j 1.1.2.1 -j 1.1.2.1.2.1 file1
U file1
RCS file: /cvsroot/first-dir/file1,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.1.2.1
Merging differences between 1.1.2.1 and 1.1.2.1.2.1 into file1
rcsmerge: warning: conflicts during merge

cvs update -A file1
U file1

and the conflict is gone!

Also only using cvs update -kx causes a file to be updated regardless of a conflict if there is no or a different sticky tag set.

I think the problem is in the Classify_File function where first the different options are checked and the status T_CONFLICT is only returned when the options haven't changed. In the following patch I just changed the order of the checks giving the conflict a higher priority.

diff -u ../../cvs-1.11.22-orig/src/classify.c classify.c
--- ../../cvs-1.11.22-orig/src/classify.c  Thu Sep 22 16:05:49 2005
+++ classify.c  Thu Aug 24 11:44:01 2006
@@ -297,11 +297,11 @@
                 */
                /* TODO: decide whether we need to check file permissions
                   for a mismatch, and return T_CONFLICT if so. */
-               if (vers->entdata->options &&
+               if (vers->ts_conflict)
+                   ret = T_CONFLICT;
+               else if (vers->entdata->options &&
                    strcmp (vers->entdata->options, vers->options) != 0)
                    ret = T_CHECKOUT;
-               else if (vers->ts_conflict)
-                   ret = T_CONFLICT;
                else
                {
                    sticky_ck (finfo, aflag, vers);

The corresponding testcase for sanity.sh:

--- ../../cvs-1.11.22-orig/src/sanity.sh   Fri Jun  9 04:09:41 2006
+++ sanity.sh   Thu Aug 24 10:34:37 2006
@@ -6793,14 +6793,12 @@
 --- 1 ----
 ! 4:br1"
          dotest branches-15 \
+           "${testcvs} update -kk -j 1.1.2.1 -j 1.1.2.1.2.1 file1" \
+           "U file1
+RCS file: ${CVSROOT_DIRNAME}/first-dir/file1,v
-           "${testcvs} update -j 1.1.2.1 -j 1.1.2.1.2.1 file1" \
-           "RCS file: ${CVSROOT_DIRNAME}/first-dir/file1,v
 retrieving revision 1\.1\.2\.1
 retrieving revision 1\.1\.2\.1\.2\.1
 Merging differences between 1\.1\.2\.1 and 1\.1\.2\.1\.2\.1 into file1
 rcsmerge: warning: conflicts during merge"
+          dotest_fail branches-15a "${testcvs} update -A file1" "C file1"
          dotest branches-16 "cat file1" '<<<<<<< file1
 1:ancest
 [=]======

And in check.log:

PASS: branches-15
U file1
exit status was 0
FAIL: branches-15a


Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #15643:  conflict.patch added by eugenzglimbea (2KiB - application/octet-stream)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by dprice (Posted a comment)
  • -email is unavailable- added by eugenzglimbea (Updated the item)
  •  

    There are 31 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 9 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2008-09-12 dprice StatusNone Fixed
        Assigned toNone dprice
        Open/ClosedOpen Closed
        Release 1.11.23
        Fixed ReleaseNone 1.11.24
        Fixed Feature ReleaseNone 1.12.14
    2008-05-09 eugenzglimbea Attached File- Added conflict.patch, #15643
    2006-09-21 susbert Carbon-Copy- Added susbert
    2006-08-31 petoft Carbon-Copy- Added petoft

    Back to the top

    Powered by Savane 3.13-758e.
    Corresponding source code