We are a large team of developers, using SVN for source control on our project. One of our files, FileTracker.cvs, is very large: it contains metadata about almost every file in our repo. The format of FileTracker.cvs is that each row respresents a file, and each column represents some piece of metadata about that file. One of the columns, called "resolved" tracks whether we have processed that file; it can be either true or false.
Because we use a single file, FileTracker.cvs, to track the status of almost all other files, it becomes a bottlneck for conflicts. That is, many people end up editing it on a regular basis. Because SVN works at the file level, any time two people edit the file, and commit, we get a conflict, even though the edits most likely happen on different lines.
We would like a solution to automatically merge conflicts in this file, ideally that hooks seamlessly into SVN. Let's say we have a conflict between two versions of the file, Left and Right, and we want to merge into a file called result. Then we just want to implement the following logic:
For each line in Left:
- If it's not conflicted with right, then line in Result is the same
- If it is conflicted with right, and the "resolved" column true, accept the line from Left in the Result
- Else, accept the line from Right in the Result
In the end, we want all resolved=true changes to persist, and we don't really care about the rest of the data as much.
We are using tortoise SVN and to a lesser extent Eclipse. Our OS is Windows 7.