Skip to content
Snippets Groups Projects
Select Git revision
  • commit-alias
  • editor-modeline
  • commit-abbreviation
  • make-hooks-work-as-advertised
  • lyda-home-version
  • master default protected
  • feature-aliases
  • git-version-bsd-fix
  • hook-changes
  • v1.20151229-1
  • v1.20151229
  • v1.20150502-1
  • v1.20150502
  • v1.20141026-manpage-static
  • v1.20141026-1
  • v1.20141026
  • v1.20141025-1
  • v1.20141025
  • v1.20141009-manpage-static
  • v1.20141009-1
  • v1.20141009
  • v1.20140508-1-bpo70+1
  • v1.20140508-1
  • v1.20140508-manpage-static
  • v1.20140508
  • v1.20140507
  • v1.20140313
  • v1.20131229-homebrew
  • v1.20131229-1-bpo60+1
29 results

vcsh

  • Clone with SSH
  • Clone with HTTPS
  • user avatar
    Richard Hartmann authored
    github: Closes richih/vcsh#181
    6d3e9d21
    History

    vcsh - Version Control System for $HOME - multiple Git repositories in $HOME

    Build Status

    Index

    1. 30 Second How-to
    2. Introduction
    3. Contact

    30 Second How-to

    While it may appear that there's an overwhelming amount of documentation and while the explanation of the concepts behind vcsh needs to touch a few gory details of git internals, getting started with vcsh is extremely simple.

    Let's say you want to version control your vim configuration:

    vcsh init vim
    vcsh vim add ~/.vimrc ~/.vim
    vcsh vim commit -m 'Initial commit of my Vim configuration'
    # optionally push your files to a remote
    vcsh vim remote add origin <remote>
    vcsh vim push -u origin master
    # from now on you can push additional commits like this
    vcsh vim push

    If all that looks a lot like standard git, that's no coincidence; it's a design feature.

    Introduction

    vcsh allows you to maintain several Git repositories in one single directory. They all maintain their working trees without clobbering each other or interfering otherwise. By default, all Git repositories maintained via vcsh store the actual files in $HOME but you can override this setting if you want to.

    All this means that you can have one repository per application or application family, i.e. zsh, vim, ssh, etc. This, in turn, allows you to clone custom sets of configurations onto different machines or even for different users; picking and mixing which configurations you want to use where. For example, you may not need to have your mplayer configuration on a server or available to root and you may want to maintain different configuration for ssh on your personal and your work machines.

    A lot of modern UNIX-based systems offer packages for vcsh. In case yours does not, read INSTALL.md for install instructions or PACKAGING.md to create a package yourself. If you do end up packaging vcsh please let us know so we can give you your own packaging branch in the upstream repository.

    Talks

    Some people found it useful to look at slides and videos explaining how vcsh works instead of working through the docs. All slides, videos, and further information can be found on the author's talk page.

    Contact

    There are several ways to get in touch with the author and a small but committed community around the general idea of version controlling your (digital) life.