So the GSoC program officially started Saturday. I have almost finished everything on the timeline for the first week already, except for initial conditions, which I am putting off until Ondrej recodes solve so that it returns a RootOf instance when it cannot solve the equation. See this post.
In order to solve homogeneous equations, I had to determine if an equation is homogeneous. I will post what all this means, when I finish everything up. Right now, I just need to write a few more tests and make sure that they work. So I wrote the function, which is very complicated, because it has to take any expression and break it up recursively. One thing that I wanted for it to do is to realize that log(x)-log(y) == log(x/y) (no LaTeX today, I am too tired). This is basically because just log(x) or log(y) will make it non-homogeneous, but log(x/y) will make is homogeneous (again, more on what this all means later). It turns out SymPy could not really do this simplification, so I had to go in and write a logcombine function that did that. The function works quite well (at least from my tests), but it is also a beefy piece or recursive work.
So here is the part where I am now. I wanted to submit the logcombine function as a regular patch, because strictly speaking it is not related to my GSoC project. So I used ‘git format-patch’ and git ‘send-email’ as usual. But then, yesterday, I began to wonder why no one had reviewed or even responded to my patches. I checked that patch list, and found to my dismay that none of the emails made it through. I suspect that git is the problem, so I send the patches manually with my email client.
Which led to another problem: the reviewers are claiming that my files are corrupt. These are major problems. I cannot reliably send patch emails through git, and when I send them manually, the files are messed up.
Can anyone reading this blog (does anyone actually read this blog?) give me some advice here? I think the corruption of the patch files may have something to do with the fact that I am using Mac OS X, which I know likes to put nasty things like resource forks in files which screws them up when they are sent to non-Macs.
And another question to you git geniuses out there: how do I change branches without committing changes? Sometimes, I am in the middle of two things, and I finish one and I want to push it to its own branch, but I cannot do this without committing the changes on the other thing, which I am not ready to do because I am not done with it yet.