For large files (like Ubuntu images) I use krusader to make backups or copy them somewhere on demand, but for small, hand-written files like configs, notes and scripts, I use bazaar (see below).

This way my stuff is

  • versioned

  • mirrored on three computers and

  • accessible anywhere (well, the ssh port is open on most firewalls I have encountered so far).

Syncing desktop, notebook and server with bzr#

For projects like “studying”, “wobsite”, “evaluations”, … I use a bzr branch on my server like so:

cd someproject
# first time setup (on desktop)
bzr init .
bzr push sftp://server/var/bzr/someproject
bzr bind sftp://server/var/bzr/someproject

# get it to notebook (still on desktop)
ssh notebook
    bzr co sftp://server/var/bzr/someproject

# on the road, without internet access (on notebook)
bzr unbind
bzr m "will merge it, when i come home"

# back at home, with internet access (on desktop)
ssh notebook
    bzr bind
    bzr update
    bzr m "did some stuff on the road"

cd someproject
bzr update

Assuming ~/someproject is already versioned and I have internet access available, the workflow remains simple:

cd ~/someproject
bzr update
# do stuff
bzr m "did stuff"