CVS marks conflicts with inline “conflict
markers,” and then prints a C
during
an update or 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 the section called “Resolve Conflicts (Merging Others' Changes)” for more about conflict resolution in Subversion.