X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=nogit;h=9135d4e8894ac0c9557b51d989ed74eed55fe812;hb=96391d13f96d3b7f9c4d31b6e6372a29f992886e;hp=d55124d27d95ea92dcaa65d2475ab2f5c36f7e77;hpb=cadb0b69b70347408a653048b0c3687399f7650f;p=nogit diff --git a/nogit b/nogit index d55124d..9135d4e 100755 --- a/nogit +++ b/nogit @@ -52,6 +52,10 @@ usage() echo " with an auto-generated commit message)" echo "" echo " * Push out any new commits generated locally" + echo "" + echo "nogit log" + echo "" + echo " Display a log of changes" } nogit_clone() @@ -64,7 +68,7 @@ nogit_clone() fi if [ -e $NOGIT_DIR_TMP ]; then - echo "Error: $NOGIT_DIR_TMP already exists. Was a previosu clone interrupted?" + echo "Error: $NOGIT_DIR_TMP already exists. Was a previous clone interrupted?" echo "You'll want to clean that up before trying again." return 1 fi @@ -97,6 +101,15 @@ nogit_clone() false fi + # Install the info/atttributes file that forces the "union" merge + # driver for all files, giving us the semantics of "keep both sides + # of all conflicts" that is at the heart of nogit. + mkdir -p tmp/.git/info + echo '* merge=union' > tmp/.git/info/attributes + + # Install the config entry for the pretty format for "nogit log" + (cd tmp; git config pretty.nogit "format:%Cblue%h %an (%ad)%Creset") + # Now that we've passed the sanity check, install the cloned .git # object store into $NOGIT_DIR, cleanup our temporary files, and # checkout the (known to not be conflicting) files. @@ -123,6 +136,11 @@ nogit_sync() echo "Completed nogit sync" } +nogit_log() +{ + GIT_DIR=$NOGIT_DIR git log -p --pretty=nogit +} + if [ $# -lt 1 ]; then echo "Error: missing command name." >&2 echo "" @@ -143,6 +161,9 @@ case "$cmd" in sync) nogit_sync ;; + log) + nogit_log + ;; help) usage true