Soliciting advice/best practices for SCM of TestComplete (Desktop) files.
We have a small team of individuals that work on keyword test development within the same TestComplete project. We are using Git for our source control. Generally speaking, I think we do a pretty good job of partitioning our work such that we do not step on each other's toes. However, there are a few TestComplete files where this is unavoidable and we have had many issues with conflict/merge resolution. The files I am talking about are: NameMap, Stores files (Regions, Files, Objects, XML), and Project files (sometimes). In our development environment, each test developer has his/her own copy of the test suite on his/her desktop and checks those files in and out of source control using Git. We do not share files.
When we have a conflict, there does not seem to be a clear set of rules that we can go by. For example, if I move a region store into a folder and my buddy moves that file into a different folder, one would think that it would be a simple matter of "use theirs" or "use mine". It is not. Typically what happens is that TestComplete drops the file pointers from the Regions file and deletes all of the folders, leaving the region files pointers as one long, flat list.
In some cases we use a "use theirs and mine" merge. This works most of the time, however, when it does not, we lose pointers/folders.
In the worst cases, TestComplete will decide to completely drop the entire contents of the file and we have to manually reconstruct the contents (e.g., go back to a previous version and roll forward our changes).
All of these things have a large cost in overhead that we would love to figure out how to overcome.
I see reference material that explains the mechanics of the source control operations using the plugins, but very little guidance on the thought processes and implications of various merge/conflict resolution strategies. What are your experiences and how do you develop a robust strategy?
Thanks.