[Top][All Lists]

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

Re: How well does CVS handle other types of data?

From: Greg A. Woods
Subject: Re: How well does CVS handle other types of data?
Date: Mon, 16 Jul 2001 16:00:51 -0400 (EDT)

[ On Monday, July 16, 2001 at 10:03:48 (-0400), Noel L Yap wrote: ]
> Subject: Re: How well does CVS handle other types of data?
> I think a proper patch to this would be to use hashes as well (or in lieu of)
> timestamps.  The hashes possibly can be cached to speed up comparisons.
> CVS should not be looking for conflict markers:
> 1.  Doing so will tie in the diff3 even more than it is now.

There's no other way than to tie in the merge ``algorithm''.  Think
about it!  How do you ever tell when conflicts are finally resolved
other than by explicitly looking for whatever indicators the merge
algorithm left behind when it detected a conflict.  You cannot rely on
timestamps, and you cannot rely on unverified input from the user.

> 2.  It will prevent checkin of files that legitimately contains the markers, 
> not
> catch real conflicts in such files, or introduce new markers to mark the
> instances of conflict markers that CVS should ignore.

That's the most bogus and illegitimate argument ever!

It is *ALWAYS* trivial to hide markers in legitimate content, even with
a hack in the external build system as Paul Sander conveniently suggested.

Why doesn't everyone on this list try the following on their systems:

  find / -type f -print | xargs egrep -l '^<<<<<<< |^=======$|^>>>>>>> 
|^\|\|\|\|\|\|\| '

If you find results anywhere but in the likes of the diff3 and cvs
binaries themselves, or of course in any working files with unresolved
merge conflicts, please report back here.

Beware that's a pretty messy patter for most egrep implementations.
Fgrep really needs an option to anchor at the beginning of a line.
Maybe I'll add such an option to my version....

> If developers want to prevent files with conflict markers from being checked 
> in,
> they can use commitinfo to do so.

I think that's a stupid (and yes I mean that literally) suggestion.

CVS itself introduces the ugly mess of conflict markers -- it must
ensure the user has cleaned up that mess before it permits a commit or a
subsequent merge that'll only mess things further.

                                                        Greg A. Woods

+1 416 218-0098      VE3TCP      <address@hidden>     <address@hidden>
Planix, Inc. <address@hidden>;   Secrets of the Weird <address@hidden>

reply via email to

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