#!/usr/bin/env bash ## vcsh # When you clone a remote repository foo, vcsh does the following behind the scene: # 1. create a folder in .config/vcsh/repo.d/foo.git, and export it as GIT_DIR. # 2. create $VCSH_BASE directory, i.e your home directory by default; and # export it as GIT_WORK_TREE # Thus the work tree and git meta data, aka .git folder, are separated. # We can use git fetch to pull the remote repository into the GIT_DIR, and # merge the changes back to the GIT_WORK_TREE. # To see the current remote repository. # "vcsh mr remote show origin" # "vcsh mr remote remove origin" # "vcsh mr remote add origin http://github.com/crazzyfool/mr.git" # "vcsh mr push --set-upstream origin master" # These can be aliased in the config file. See below ## mr # To get started using mr, perhaps you already have some checked out repositories. Go into each one and run # "mr register". # Now mr has a list of them in ~/.mrconfig, which you can edit later to tune its operation. # Suppose you've cd'd to ~/src, and it has many repositories under it. To update them all, run # "mr update". # "mr commit". commit any pending changes # "mr status". check the status of each, # "mr push". push changes to all repositories. apt install -y vcsh mr mkdir -p ~/.config/mr/available.d mkdir -p ~/.config/mr/config.d GIT_WORK_TREE=${HOME} # Change this to your dotfiles repository GIT_REPO=git://github.com/RichiH/ cat > ~/.config/mr/available.d/mr.vcsh < ~/.config/mr/available.d/zsh.vcsh < ~/.mrconfig <