CVS marks conflicts with inline “conflict
markers”, and then prints a
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. Secondly, 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 “解决冲突(合并别人的修改)”一节 for more about conflict resolution in Subversion.