Skip to main content
Help us improve PyPI by participating in user testing. All experience levels needed!

Homekeeper can version your dotfiles with Git.

Project description

Homekeeper
==========
This project helps me organize and version my dotfiles across multiple
computers. It is useful to keep these dotfiles in sync so I don't get confused.
You may or may not find it useful.

My dotfiles repository is located here if you'd like to take a look:

https://github.com/retiman/dotfiles

Homekeeper will read a `$HOME/.homekeeper.json` file for configuration, or create
one if it doesn't already exist. The default configuration looks like this:

{
"dotfiles_directory": "/home/$USER/proj/dotfiles",·
"excludes": [
".git",
".gitignore",
"LICENSE",
"README.md"
]
}

Homekeeper will not symlink any file in the `excludes` array in the
configuration. The default is to exclude the `.gitignore` and `.git` files
but you can change this if you want.

You may have homekeeper generate this file by running `homekeeper init` in the
directory where you store your dotfiles.

Once homekeeper knows where your dotfiles live, it will remove the dotfile in
your home directory, and symlink it from your dotfiles directory. For example,
if you have a `.bash_profile` in `~/dotfiles`, then your home directory will
contain:

.bash_profile -> /home/yourusername/dotfiles/.bash_profile

NOTE: HOMEKEEPER WILL REMOVE THE ORIGINAL FILE ONCE YOU TELL IT TO SYMLINK.

Make sure you back it up or are having homekeeper track the file you want to
symlink first.

Multiple Computers
==================
If you have multiple computers or VMs you are working with, consider making a
branch for each one. I like to name each branch after a host I am working on.
If you like a commit and want them to show up in all branches, do this:

1. `git commit -am "My super awesome change"`
1. `git checkout master`
1. `git cherry-pick <commitid>`
1. `git checkout <host-branch>`
1. `git merge master`

Or you can run `homekeeper save` which will do the same thing with what HEAD
points to in the current branch.

If you are on a different computer or VM and want to pick up the changes
from master, do this:

1. `git checkout master`
1. `git pull origin master`
1. `git checkout <host-branch>`
1. `git merge master`

Or you can run `homekeeper update` which will do the same thing.

More Documentation
==================
There isn't any. I don't think anybody will use this except me.

Project details


Release history Release notifications

History Node

4.0.3

History Node

4.0.2

History Node

4.0.1

History Node

4.0.0

History Node

3.2.0

History Node

3.1.0

History Node

3.0.1

History Node

3.0.0

History Node

2.2.3

History Node

2.2.2

History Node

2.2.1

History Node

2.2.0

History Node

2.1.7

This version
History Node

2.1.5

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
homekeeper-2.1.5.tar.gz (4.1 kB) Copy SHA256 hash SHA256 Source None Nov 21, 2013

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page