Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Synchronize your dotfiles using github

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 README.md
README.md

dotsync

Forking dotfiles on github is pretty trendy. But what if you don't want a full-fledged fork of others' settings?

What if you just want to synchronize your own dotfiles, on different machines?

Then you want two repositories, not just one.

  1. dotfiles:
    • Your dotfiles. The things you want to version and synchronize.
  2. dotsync:
    • Dotfile management software
    • A github repository just like any other. Not forked (unless you want to develop it!)

Philosophy and goals

There's more than one way to put dotfiles on github! The dotsync philosophy is based on Eli Barzilay's comment, summarized below.

Dotfile repositories have to figure out what to do with the $HOME directory. Most take one of two approaches:

  1. dotfiles are symlinked from the repository
    • Pro: Cleaner setup. All the versioned files are in one place!
    • Con: Fragile. Too easy to whack changes.
  2. $HOME is a repository
    • Pro: Simple. Files really do live just where they seem to live.
    • Con: Messy. Everything you don't version will clutter up your git status
    • Con: Dangerous! Running git commands in the wrong directory could make a mess, instead of a harmless error message

dotsync takes a third approach: A git alias with predefined options

  • The dotfiles live in the HOME directory (no worries about whacking symlinks)
  • Yet, $HOME is not a repository (you won't mess it up if you git in the wrong directory)

Getting started

Install dotsync

These commands install dotsync to a directory called dotsync/, under your current working directory:

git clone git://github.com/chiphogg/dotsync.git
./dotsync/install

Setup dotsync

Now that you've got a repository

Miscellaneous

Notes

  • Should play nice with cron: the install script expands $HOME when it writes the bash settings file.

Acknowledgements

Something went wrong with that request. Please try again.