GSOC Day 43 – Git Merge Hell
I was too tired last night to write about my adventures with Git, but I spent hours yesterday wrestling with it, trying to merge in the changes that Mithro had made to winDesign. I needed those changes to avoid duplicating his fixes and to move on to doing more work on the window.
Unfortunately, the merge wasn’t nearly as easy as I would have expected. When I did a git merge on the top-level tpclient-pywx, it just exited with an error:
[Greywhind@localhost tpclient-pywx]$ git merge origin/stable
fatal: cannot read object dbda575604d4192ef11826a11ccf18a22c92d718 ‘libtpclient-py’: It is a submodule!
Through a Google search, I was able to find the suggestion to do git merge -s resolve origin/stable. That seemed to complete, at least, but it left changes in libtpclient-py unmerged and still gave a large number of odd-looking errors. I finished the merge that way, but then, when I ran it, Mithro told me that I was seeing errors that had already been fixed. So that means the merge somehow didn’t actually get all the most recent changes.
I undid all of that, and nobody on #git seemed to have a solution. So I went back and sent all the code to Mithro, who tried the merge himself. It worked for him:
tansell@tansell:~/foss/temp/tp04testing$ git merge origin/stable
CONFLICT (submodule): Merge conflict in libtpclient-py – needs 4bcdb81d4683b93ef323dbfffe76f63d676439e2
Automatic merge failed; fix conflicts and then commit the result.
So… that meant that the copy of Git that ships with Fedora 11 must be broken. I installed the newest Git from source, and I was finally able to get the same result, then manually merge libtpclient-py.
I still seem to have errors that Mithro thought might have been fixed, but it was too late to deal with them, so I’ll look at them today.
The midterm also starts today. I’ll fill out the survey as soon as I can.