]> git.cworth.org Git - nogit/blobdiff - nogit
Fix emacs hook to not clobber match data
[nogit] / nogit
diff --git a/nogit b/nogit
index 16cd18f9460024ba770d5fdff27a44a27adcb851..9135d4e8894ac0c9557b51d989ed74eed55fe812 100755 (executable)
--- 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()
@@ -59,7 +63,13 @@ nogit_clone()
     url="$1"
 
     if [ -e $NOGIT_DIR ]; then
-        echo "Error: .nogit already exists. Cowardly refusing to re-clone."
+        echo "Error: $NOGIT_DIR already exists. Cowardly refusing to re-clone."
+        return 1
+    fi
+
+    if [ -e $NOGIT_DIR_TMP ]; then
+        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
 
@@ -91,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.
@@ -117,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 ""
@@ -137,6 +161,9 @@ case "$cmd" in
     sync)
         nogit_sync
        ;;
+    log)
+        nogit_log
+        ;;
     help)
         usage
         true