public
Description: ~rtomayko
Homepage: http://rtomayko.github.com/dotfiles
Clone URL: git://github.com/rtomayko/dotfiles.git
name age message
file .bash_profile Tue Nov 03 01:07:32 -0800 2009 core dotfiles [rtomayko]
file .bashrc Wed Nov 11 17:54:30 -0800 2009 green colored prompt on *.github.com [rtomayko]
file .dircolors Tue Nov 03 01:07:32 -0800 2009 core dotfiles [rtomayko]
file .gitshrc Fri Dec 11 01:48:52 -0800 2009 git-cv: git-cherry(1) with short SHAs and colors [rtomayko]
file .gvimrc Mon Nov 09 22:46:14 -0800 2009 core vim stuffs [rtomayko]
file .htoprc Tue Nov 10 00:14:39 -0800 2009 current htop config [rtomayko]
file .inputrc Tue Nov 03 01:07:32 -0800 2009 core dotfiles [rtomayko]
file .mailplane Tue Nov 10 00:17:20 -0800 2009 absolutely minimal gmail css for Mailplane [rtomayko]
file .mostrc Mon Nov 09 22:46:14 -0800 2009 core vim stuffs [rtomayko]
file .rdebugrc Tue Nov 03 01:38:37 -0800 2009 rdebug dotfile [rtomayko]
file .reerc Sat Nov 14 21:29:04 -0800 2009 evan's railsbench GC tuning environment [rtomayko]
file .screenrc Tue Nov 03 01:07:32 -0800 2009 core dotfiles [rtomayko]
file .sig Fri Nov 13 22:56:53 -0800 2009 my sig [rtomayko]
file .tigrc Tue Nov 03 01:07:32 -0800 2009 core dotfiles [rtomayko]
directory .vim/ Tue Nov 17 00:40:13 -0800 2009 bring javascript.vim up to latest [rtomayko]
file .vimrc Sun Nov 29 07:51:33 -0800 2009 vim: add .god as ruby filetype [rtomayko]
file README Sun Nov 29 07:53:13 -0800 2009 document how this repository is managed and how... [rtomayko]
directory bin/ Wed Dec 23 22:31:13 -0800 2009 git-pruneall: prune all stale remote branches [rtomayko]
README
This is my HOME, including shell environment, vim
configuration, and other misc dotfiles and scripts.

Have fun.

BACKGROUND

I've received a few emails inquiring as to how this
repository is managed and how I intend for others to use
it. There's multiple techniques for keeping a home
directory under version control -- I'll try to lay out my
goals and strategy here.

First, a few things I'm not trying to accomplish: I don't
use this repository to distribute or sync my common files
between multiple machines (that's what the ~/bin/sync-home
script is for). I also don't intend to use this repository
as a source of backup -- I have a separate incremental backup
and snapshotting tool for that.

This repository exists mainly so that I can publish my
environment and misc scripts, since I often find myself
referencing them in conversations, email, IRC, blog posts,
etc. I also like having a proper annotated change history
for these files when things break.

I don't suggest using this as some kind of prefab home
environment (although that's certainly possible). Look
through the stuff and take what you find useful with copy
and paste or by copying specific files and directories
into your own home - such is the tradition of UNIX home
directories.

TECHNIQUE

My home directory is a real git work tree. The repository
data is stored in ~/.git. Some people like to keep the
actual work tree somewhere else and symlink files into
their home. I don't do that.

One issue with this approach is that 'git status' can be
overly noisy, since most files are not tracked and show up
as "other" files. I get around this by ignoring all files
that I haven't added explicitly -- this is as simple as
adding a "*" line to the ~/.git/info/exclude file.

Another issue is how best to handle machine specific or
sensitive information (usernames / passwords, API keys,
etc.) included in dotfiles. I simply do not add any files
to the repository unless they're "clean". In some cases,
that means not adding stuff that I'd otherwise like to
have tracked. For example, I'd like to publish my
~/.gitconfig file but it contains my secret github API
key.

In other cases, I've built up systems for dealing with
this issue specifically. My ~/.bashrc file is machine
generic but sources an ~/.shenv file (untracked) if it
exists. This lets me separate machine-specific and
sensitive information from stuff I want to publish. If I
can figure out how to include a ~/.gitconfig-private or
some such file into ~/.gitconfig, I'll start tracking the
non-sensitive stuff under the repository as well.

COPYING

I didn't write all of this stuff, or even most of it.
I've tried to include proper attribution and info on
distribution and licensing in each of the file's I
found elsewhere. Please contact me if you see something
not so attributed.

# tomayko.com/about