I am afraid that I have to admit that the development of this site has
until now proceeded in what any programmer must consider a state of sin: it
was not under version control. Sure, I had periodic snapshot backups, but
forget about versions, branches, and reverts.
The reason for this is that I was under the mistaken impression that my VCS
of choice, git, made it difficult to set up remote branches. I think my
confusion stemmed from the fact that it is somewhat tricky to set up
public-facing ones with good commit-access control etc (which is why GitHub is so great).
Now that I looked into it more, I find it's actually tremendously easy, and
I've got a really great work-flow set up: I have a master repo on the server,
a development repo on my laptop, and another one in the directory from which
the site is served. I can make changes on my laptop (and thanks to the magic
of makefiles and m4 macros, keep a separate dev config file), and then push
those to the master repository. When I'm ready to launch, I just pull them to
the serving repo and run a make prod
.
Continue reading…