I use Mercurial in a single-user workflow to have the option to roll back changes if my coding or writing goes horribly wrong (I primarily use the Stata and R statistics packages and LaTeX). While working only locally, this has been easy since all I have is the main repo.
Recently I have started ssh-ing into a Linux server for more computational power. So far I have been manually copying files back and forth and using Mercurial only locally, but I would like to use Mercurial to take care of this and keep these two workflows synchronized. Also, I like the ability to code both locally (on my laptop or desktop) and on the server.
Do I need to work on a clone of the main repo on the server and keep the main repo untouched? Or can I work directly in the main repo when I am on the server? In this question @gizmo points to this workflow guide; the “single developer” discussion is helpful, but it’s still not clear to me that I can work in the main repo while I’m on the server without causing some major problem that I don’t yet understand.
Thanks!
Edit: I should add that I have worked through Joel Spolsky’s HgInit.com tutorial and I’m comfortable pushing/pulling/cloning/etc over ssh, but I am still not sure if I can work in the main repo without causing heartache later. Or maybe this is more a philosophical question? Thanks!
If you
and don’t forget perform pull|push cycle around your work at home (in order to don’t run hg serve at home-host and sync from server as source) you don’t get any headache at all with perfect linear aggregated history on each place. And even you forget to sync repo sometimes, you get in worst case two heads later, which you’ll be able to merge easy (doesn’t know formats of Stata and R data-files, but LaTeX, as text, is mergeable)