I'm currently evaluating using Git and Sourcetree at our company for all our development, not just programming. This involves a lot of CAD-projects, mainly in SolidWorks, and therefore a lot of binary files.
The people who will use it are non-programmers and can not be expected to learn the advanced concepts of Git. I have only used Git for about six months and can't say I can handle a lot of the advanced concepts yet. I intend to teach them how to do cloning, pushin, pulling, committing, branching and merging to start with and then see how well that works.
My question is about how to do conflict solving when merging with binary files, expecially when one is not 100% certain of what changes have been made in the two branches. I've tested a bit myself in Sourcetree and have come up with a workflow that is simple enough in my eyes and now I just want to verify that it don't involve anything stupid that might cause problems in the future.
The workflow is as follows:
- Merge, and discover there's a conflict
- Right-click on the file in File Status and select Reselove Conflict / Launch External Merge Tool
- Click Abort on the dialog Visual Merge In Progress
- Open and view the LOCAL and REMOTE (and possibly BASE) versions of the file in a suitable program and decide which one to use
- Delete the BACKUP, LOCAL, REMOTE and BASE files
- Right-click on the file in File Status and select Resolve Conflict / Resolve Using 'Mine'/'Theirs'
- Commit the merge
Questions:
Is this a bad idea?
Is there a simpler way to bring out the LOCAL and REMOTE file versions? (single button or menu option)
If I want to use the BASE version, can I choose that without having to delete the original file and then renaming the BASE version to that filename? (equivalent to choosing Mine or Theirs)