Configuring Git
Like its predecessors, Git is wonderfully configurable, and many (most?) of us choose to change some of the defaults. But who develops on just a single computer? Adding your Git configuration to MCM makes it easy to synchronise (and track) your changes across machines. Here's an example:
MCM Git import Admin.Packages as Packages define git() Packages.add package> git define userconfig(gitemail home userfullname) .git File path> @home/.gitconfig content: [user] + name = @userfullname + email = @gitemail + + [color] + diff = always + status = always + [alias] + wdiff = diff --color-words + f = fetch + ls = log --oneline --decorate -n 20 + lsa = log --oneline --decorate -n 20 --all + ll = log --oneline --decorate -n 20 --numstat + lla = log --oneline --decorate -n 20 --all --numstat + s = status + # Usage: "git export <tag>" + export = !b=`basename $PWD` && git archive --prefix=$b-$1/ -o /tmp/$b-$1.tar.gz + # Usage: "git namedexport <packagename> <tag>" + namedexport = !sh -c 'git archive --prefix=$1-$2/ -o /tmp/$1-$2.tar.gz $2' -
The git() define simply requests that the git package be installed, so can be called from pretty much anywhere (e.g. machine configuration scripts and when a dependent). The userconfig() define is designed to be called from scripts configuring home directories.