CVS marks conflicts with inline “conflict markers,” and
then prints a
C during an update or
a merge operation. Historically, this has caused problems because CVS
isn’t doing enough. Many users forget about (or don’t see) the
C after it whizzes by on their terminal. They
often forget that the conflict markers are even present, and then
accidentally commit files containing those conflict markers.
Subversion solves this problem in a pair of ways. First, when a conflict occurs in a file, Subversion records the fact that the file is in a state of conflict and won’t allow you to commit changes to that file until you explicitly resolve the conflict. Second, Subversion 1.5 provides interactive conflict resolution, which allows you to resolve conflicts as they happen instead of having to go back and do so after the update or merge operation completes. See Resolve Conflicts (Merging Others’ Changes) for more about conflict resolution in Subversion.