It turns out knowing how Git works can help a great deal when using git. Learning about git servers, bare repositories, and git hooks has streamlined my development process significantly.
I posted previously about how I do some Android app development work on my phone. Then I use git, along with various other things, to get the code to my server. On the server the apk is built, and then through other processes I get the apk back to my phone and installed so I can test it.
I have made some changes to that process since I started. I'll go through what I was doing and point the changes. So I have my app setup as a github repository. I have an app on my phone called SGit that lets me check out the repository and do commits and push my changes back to the repository. I also have an app called Quoda that I use for editing the code. This part remains basically the same. The only real change here is that I have setup a new remote in my repository that is actually on my local server. So when I push my changes they go there instead of to the repository on github.com.
To make that work all I had to do was clone a bare repository in a new folder on my server. To push from my phone I need ssh access to the server, but I already had that setup. Now whether I am working on the server or on the phone I push to the new bare repository. There is still a normal git repository on the server that I can work in.
Now the next major change is what happens after I push changes from my phone. I used to use an SSL client app on my phone to connect to the server, run 'git pull' to get the changes, and then run 'ant debug' to create a new apk. Now that the changes are pushed to my server I can use Git hooks to run a script whenever changes are pushed to that repository. I setup a post-receive hook that does a git pull in the working repository on the server and then builds the apk.
The folder where the apk is created is also in my Dropbox folder, so I was getting the new apk on my phone from the Dropbox app. There was always some delay here. When working at home I recently started getting the apk over my local network to avoid this delay. I have been having some issues with that, but I haven't figured it out yet. The network just seems unreachable sometimes from my phone. If I figure anything out there I'll post something about it.
I haven't had a chance to do much work yet using this new process, but it seems much more streamlined. Like before, I'll post again if I find any other ways to optimize the workflow.