Thursday, November 13, 2014

Learning how Git works helps my development process greatly

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.

No comments:

Post a Comment

Coding

  I'm not sure where I heard this, and it wasn't worded this way, but it helps to think about coding this way. Basically, any progra...