We have a large ASP.Net solution, consisting of 96 projects, 2k+ files. Recently we needed to do a major 3rd party dll update which requires quite a bit of code change across the board and we also took the opportunity to clean up references of every project to reduce the build time. All our code reside in TFS2010. We use VS2010 for all our work. For this exercise, we decided to try out git, since it's well known for branching and merging. It's really painful for us to branch and merge in TFS. And since this has no feature change, so we decided no to do a release branch like usual.
We started out by taking our latest code and created a new git repo and started our code change from there, while our existing team continue to use TFS for production bug fixes. Now it comes to the time to merge. We resorted to manual merging and finding it too time consuming and confusing. So we created a branch in our git repo called 'tfs' and wrote a script to checkout version by version of TFS changeset since the branching and commit into our git repo. On the first commit into tfs, we realized we have autocrlf
turned on so we switch it off and redo the commit. (Now we just realized that might be a big mistake, the master branch are all in lf
). All subsequent commit into tfs
branch is with crlf
.
Now when we try to do a git merge
from both end of the branch, the conflict are display in 2 big chunk instead of lines of changes which makes merging even more difficult. What should we do to make use of git's playback feature of merging for our current situation?
Please let me if further clarification is required so make this clearer. I've also read about How to repair CRLF in GIT repository to avoid merge conflicts, though any further recommendation for our merge workflow would be very helpful.
Thank you in advance
EDIT: Thanks guys, I end up fixing the CRLF by creating a new branch tfs_crlf
with autocrlf=input
(I'm using a linux machine) then checkout each of tfs
commit and copy the files over to tfs_crlf
and commit with the same commend. I scripted the whole thing and now merging and conflict files are showing up as expected