previous projects
timeline
-
starting around 2003: accumulation of small scripts
-
2007: switching to linux 100% (no longer needing windows for college work)
-
2008: beginning to store scripts, dotfiles, configuration and such under svn
-
2012: migrating from svn to config (git repo) and organizing scripts/dotfiles. Nothing is ever lost and everything configured properly.
-
2016: migrating git repo to vcsh
the key requirements
version control
all customized files tracked and stored on a remote server. easy to revert, easy to experiment.
multiple environments
The ability to login into a remote machine and have my aliases, functions, scripts etc. available without having to maintain multiple locations etc.
share between environments
have scripts/aliases for my local computer and public/common stuff for remote computers.
the tools available.
In 2012, I implemented the symlink idea. dotfiles are symlinks and actual file is stored in folder under git. Managing multiple environments using git branches.
This works out great except for:
-
dealing with merges and merge conflicts + picking what to commit etc. i.e a lot of work
-
symlinks creating issues for certain files e.g .zhistory
-
extra work/maintenance
In 2016, found out about https://github.com/RichiH/vcsh which allows you to manage multiple git repositories. This is perfect as each environment can be its own repository and no more merge problems.
During that time, oh-my-zsh, prezto and other frameworks surged. Frankly, I don’t think you need a framework. You can organize all your shell scripts under directories and source them. Essentially, that’s what those frameworks do. They don’t provide a solution for other dotfiles.