It needs to be sourced in .{bash,z}shrc and has features like tracking files from multiple repos (so called "castles"), auto-linking, auto-update every X days.
We also use it in our dev team to share some config (and ~/bin) files, works fine.
81–90 of 97 posts
It needs to be sourced in .{bash,z}shrc and has features like tracking files from multiple repos (so called "castles"), auto-linking, auto-update every X days.
We also use it in our dev team to share some config (and ~/bin) files, works fine.
I use Homesick ( https://github.com/technicalpickles/homesick ). It's basically a dotfile manager. Symbolically links your stuff and runs scripts.
I use vcsh and my, I even wrote a blog post about it: https://srijanshetty.in/technical/vcsh-mr-dotfiles-nirvana/
I also interviewed the developer some years ago here: http://episodes.gitminutes.com/2013/06/gitminutes-13-richard...
I use: git init --bare $HOME/.myconf alias config='/usr/bin/git --git-dir=$HOME/.myconf/ --work-tree=$HOME' config config status.showUntrackedFiles no where my ~/.myconf directory is a git bare repository. Then any file within the home folder can be versioned with normal commands like: config status config add .vimrc config commit -m "Add vimrc" config add .config/redshift.conf config commit -m "Add redshift config"…
Why is this a bare repo as opposed to a normal one?
Earlier quoted context omitted.
Because the working tree is already your home folder, you don't need to also have a copy of these files in ".myconf/".
So why use .myconf/ at all? What is it doing?
I use: git init --bare $HOME/.myconf alias config='/usr/bin/git --git-dir=$HOME/.myconf/ --work-tree=$HOME' config config status.showUntrackedFiles no where my ~/.myconf directory is a git bare repository. Then any file within the home folder can be versioned with normal commands like: config status config add .vimrc config commit -m "Add vimrc" config add .config/redshift.conf config commit -m "Add redshift config"…
To complete the description of the workflow (for others), you can replicate your home directory on a new machine using the following command: git clone --separate-git-dir=~/.myconf /path/to/repo ~ This is the best solution I've seen so far, and I may adopt it next time I get the itch to reconfigure my environment.
git clone --separate-git-dir=$HOME/.myconf /path/to/repo $HOME/myconf-tmp
cp ~/myconf-tmp/.gitmodules ~ # If you use Git submodules
rm -r ~/myconf-tmp/
alias config='/usr/bin/git --git-dir=$HOME/.myconf/ --work-tree=$HOME'
and then proceed as before.And I have dotfiles repository at GitHub. Some files are hosted in Dropbox (for API keys and etc.).
my dotfiles: