Diff-3 (conflict)
| Chapter 3. Using eSvn |

## Diff-3 (conflict)

When performing an update or a merge operation subversion will merge the differences from files in the repository to the working copy. During this operation the following may occur:

- Unchanged working copy files will be updated and set to 'up-to-date' status.

- Changed working copy files with changes that do not overlap with changes coming from the repository are merged and set to 'up-to-date' status.

- Changed working copy files with changes that do overlap with changes coming from the repository are set to the 'conflict' status.

The first two cases result in an 'up-to-date' status. There is therefore no reason for concern. However the third case results in a 'conflict' status that means the changes from the server overlapped with those in the working copy and must be manually resolved by choosing between them.

When a file is in the 'conflict' status eSvn the file is marked with the 'conflict' icon, 3 different files are created and conflicted markers are added:

`[filename].mine`

  This is the file that existed in working copy before the update operation. This file does not contain conflict markers it is your local changes and nothing else.

`[filename].r[OLDREV]`

  This is the file that was the `BASE` revision before the update operation. That is, the file checked out before editing.

`[filename].r[NEWREV]`

  This is the file that eSvn just received from the repository as a result of the update operation. This file corresponds to the `HEAD` revision of the repository.

To resolve this situation you can edit the file manually in order to resolve all conflicts (marked with <<<< and >>>>) or use `Diff 3 (conflict)` option ( Query->Diff-3 (conflict) (Ctrl+Shft+F9) ). This option passes the three files to the external 3-way diff application specified in the `Options` dialog. Use this application to view the differences between the files and merge them to your working file.

In some cases it is not th keeping the changes made in `[filename].mine`. In this case you may also:

- Copy one of the temporary files on top of your working file.

- Use the Revert option ( Modify->Revert (Alt+R) ) option to throw away all of your local changes in favor of the changes in `[filename].r[NEWREV]` (`HEAD`).

When this is done, remember to use the resolved option ( Modify->Resolved (Alt+E) ) to inform subversion that the conflict in fixed. This will remove the temporary files ( `[filename].r[OLDREV]` and `[filename].r[NEWREV]`) from the working copy and enable eSvn to perform a commit operation. Before this is done, eSvn will not allow commit operations on the working copy.

Quick Diff |  | Blame