Organising code inside of OH-MY-ZSH is becoming unnecessarily complex. For a while, there has been the /custom directory to dump files that override or append to the functionality of /lib, /plugins, and /themes.
Then the ability to override /plugins via /custom/plugins was added (#89). Now, a new proposal has been submitted to allow the overriding of /themes (#376) and /lib (in the comments to #376) via /custom/themes and /custom/lib respectively.
Additionally, there is the /functions directory (b865f2a) for dumping miscellaneous functions and the /completions directory (#351) for dumping miscellaneous completions.
These directories are unnecessary for we already have a software configuration management (SCM) tool called Git. We should use Git exclusively.
I propose that we get rid of /custom, and edit /lib, /plugins, and /themes directly. We also get rid of /functions, and /completions to encourage the creation of plugins instead of dumping random code in those directories.
Pulling updates while retaining customisations is easy by recursively merging conflicting hunks by favouring our version.
git pull --no-commit --strategy=recursive -X ours robbyrussell master
Updates should always be checked for dangerous code (rm -rf /). Hence we use pull --no-commit to stop Git from auto-committing to let us check the files even when there is a clean merge.
git status
*** Check the files listed. ***
git commit
Lastly, if we use Git exclusively, the /tools directory becomes unnecessary and should be removed.
Keep It Simple!
Organising code inside of OH-MY-ZSH is becoming unnecessarily complex. For a while, there has been the /custom directory to dump files that override or append to the functionality of /lib, /plugins, and /themes.
Then the ability to override /plugins via /custom/plugins was added (#89). Now, a new proposal has been submitted to allow the overriding of /themes (#376) and /lib (in the comments to #376) via /custom/themes and /custom/lib respectively.
Additionally, there is the /functions directory (b865f2a) for dumping miscellaneous functions and the /completions directory (#351) for dumping miscellaneous completions.
These directories are unnecessary for we already have a software configuration management (SCM) tool called Git. We should use Git exclusively.
I propose that we get rid of /custom, and edit /lib, /plugins, and /themes directly. We also get rid of /functions, and /completions to encourage the creation of plugins instead of dumping random code in those directories.
Pulling updates while retaining customisations is easy by recursively merging conflicting hunks by favouring our version.
Updates should always be checked for dangerous code (
rm -rf /). Hence we usepull --no-committo stop Git from auto-committing to let us check the files even when there is a clean merge.Lastly, if we use Git exclusively, the /tools directory becomes unnecessary and should be removed.
Keep It Simple!