When a file has been modified in the repository as well as in a checked out copy, "cvs -nq update" in cvs-1.10 used to report the file as having 'C' status. cvs 1.10.5+ tries to do the merge and reports 'C' if there will be a true conflict and 'M' otherwise -- but only when the repository is local. If the repository is :ext: then it reports 'C' either way. Two solutions I see are: 1. Have local and remote always report 'C' - This makes life easier for people and scripts that expect 'cvs -nq update' to provide a one-line summary for each interesting file, otherwise scripts have to parse that RCS cruft and remember it when they see the next 'M foo' line. It also makes cvs faster. - A patch for this against 1.10.8 is appended. 2. Have local and remote check for a true conflict and report 'M' or 'C' accordingly. - This distinction is of dubious value since it only allows the user to know a little sooner that they have to do a merge, and makes correctly parsing 'cvs -nq update' output unneccesarily complicated. There are other solutions, such as introducing a new letter to distinguish the conflict and merge cases, or adding a command-line option for scripts to use, but these would be more disruptive. Here is a patch to revert to the 1.10 behavior (solution 1 above): diff -u -ru -p cvs-1.10.8.orig/src/ChangeLog cvs-1.10.8/src/ChangeLog --- cvs-1.10.8.orig/src/ChangeLog Mon Jan 17 10:04:22 2000 +++ cvs-1.10.8/src/ChangeLog Fri Apr 14 17:27:34 2000 @@ -1,3 +1,11 @@ +2000-04-14 Bart Robinson <[EMAIL PROTECTED]> + + * update.c (update_fileproc): back out change to distinquish + between files that have a conflict and those that just need + a merge, when the file has changed in the repository as well + as in the local checkout. + (merge_file): ditto + 2000-01-17 Larry Jones <[EMAIL PROTECTED]> * mkmodules.c (init): Create CVSROOT/Emptydir to avoid problems diff -u -ru -p cvs-1.10.8.orig/src/update.c cvs-1.10.8/src/update.c --- cvs-1.10.8.orig/src/update.c Wed Jan 5 08:35:46 2000 +++ cvs-1.10.8/src/update.c Fri Apr 14 17:19:37 2000 @@ -648,7 +648,15 @@ update_fileproc (callerdat, finfo) write_letter (finfo, 'C'); break; case T_NEEDS_MERGE: /* needs merging */ - retval = merge_file (finfo, vers); + if (noexec) + { + retval = 1; + write_letter (finfo, 'C'); + } + else + { + retval = merge_file (finfo, vers); + } break; case T_MODIFIED: /* locally modified */ retval = 0; @@ -2054,7 +2062,8 @@ merge_file (finfo, vers) if (status == 1) { - error (0, 0, "conflicts found in %s", finfo->fullname); + if (!noexec) + error (0, 0, "conflicts found in %s", finfo->fullname); write_letter (finfo, 'C');