I no longer use this repo. I've converted everything here to https://github.com/nyarly/nix-config.
In the end, it was a big hassle to maintain separate repos, there was a step in the sync process that was difficult to surface which made it easy to have committed all my local changes and then forget to push them up here.
With home-manager, I get a lot more than simple maintenance of text files. I can specify programs that need to be installed, as well as maintaining tricky multi-component configurations in one module.
There are many repos like this, but this one is mine.
This is a repository encompassing many VCSH repos, in order that they all be in one place.
The idea is to be able to check out one repo, edit a file, run a script and bingo, there's a machine configured.
This repo incorporates many existing vcsh repos as subtrees. Each is a branch with its own root. Those branches are in turn merged here as subdirectories with the same name as the branch and the same intended vcsh name.
So, you should be able to
cd dotfiles-repo
git pull
vcsh clone file://dotfiles-repo.git -b repo repo
vcsh pull
vcsh repo commit -a
vcsh push
git push
c.f. the git book about subtrees.
scripts/add-subtree <remote> <repo>
adds an existing git repo as a subtree.scripts/convert-one <repo>
updates a single vcsh repo to point to this reposcripts/convert-vcsh
runs overvcsh list
and updates those repo to point here.scripts/all-repos
emits a list of all the vcsh branches availablescripts/common-repos
lists the branches here that vcsh supportsscripts/vcsh-clone
reads from stdin a list of branches to vcsh clone.scripts/pull-repo <repo>
pulls changes from a repo branch into masterscripts/pull-all
pulls changes from all repo branches into masterscripts/refresh-branches
run aftergit pull
to make sure all local branches are updated
(not done yet)
scripts/vcsh-init <repo>
creates a new vcsh config that points to a matching branch.
Well, VCSH obviously.
commute is a nice complement to this repo,
since it dotfiles can get added to your commute list
so that you remember to do the git push
.
Most of these repos are config files,
and as such contain hidden files.
ls -a
liberally!
fish
requires that git
be checked out properly -
you'll want to fisher install
after adding 'fish',
and if git fails, it'll fail and clean out the fishfile.
Likewise, you'll want to launch nvim
and :PlugInstall
after pulling in the 'neovim' repo.
xmonad
wants a xmonad --recompile
git clone git@github.com/nyarly/dotfiles
cd dotfiles
scripts/all-repos > local-repos
vim local-repos # delete ones inappropriate to current machine
# install apps here - nvim, fish, direnv, etc
scripts/vcsh-clone < local-repos
Adding branch new branches needs work