Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ulidtko/versioned-configs

Naming dotfiles as "versioned-configs" before it was cool
https://github.com/ulidtko/versioned-configs

Last synced: 24 days ago
JSON representation

Naming dotfiles as "versioned-configs" before it was cool

Awesome Lists containing this project

README

        

This is a repo where I store some of my config files. Nowadays it's trendy
to name repos of this style `dotfiles` — but I created it well before
the convention became mainstream. Thus, `versioned-configs`. You know, for compatibility.

Version-controlling configuration files is nothing new; in fact, some of the
most common config files (e.g. bashrc, vimrc, etc) are more of script code
than "key-value" stores; and version-controlling code is a must.

Structure of the repo
=====================
.
|-- HOME
| |-- bash_profile
| |-- bashrc
| |-- gitconfig
| |-- inputrc
| |-- profile
| |-- ...
| |-- vimrc
| `-- zshrc
|-- install.sh
`-- README

Surprisingly enough, HOME denotes the home directory. Files under HOME are
config files with leading dots in their names removed. To use them, you'll need
to replace your current config files under ~ with symlinks. install.sh helps to do that.

I'd be glad to know how to make git rewrite files instead of replacing them
when manipulating the working copy. This way it could be possible to use hard
links instead of symlinking files in ~; if you know an elegant solution with
hardlinks, please tell me.

Using
=====
Some basic knowledge of git is inherently needed for working with this.

Procedure is simple: clone the repo, setup the links, and you are done.

$ cd ~/.config
$ git clone git://github.com/ulidtko/versioned-configs.git dotfiles
$ cd dotfiles
$ git submodule init && git submodule update
$ less README # ;-)
$ ./install.sh

If you have any questions or comments, contact me.