]> git.cworth.org Git - nogit/blobdiff - nogit
Provide the merge=union semantics we want through an info/attributes file
[nogit] / nogit
diff --git a/nogit b/nogit
index 102b8c7a1516295f9022e88d7f80d22d363dd111..b0820fc224413e9bfbc0e51562e45309f3cadd5e 100755 (executable)
--- a/nogit
+++ b/nogit
@@ -63,6 +63,12 @@ nogit_clone()
         return 1
     fi
 
+    if [ -e $NOGIT_DIR_TMP ]; then
+        echo "Error: $NOGIT_DIR_TMP already exists. Was a previosu clone interrupted?"
+        echo "You'll want to clean that up before trying again."
+        return 1
+    fi
+
     # Clone the repository into a temporary directory
     mkdir $NOGIT_DIR_TMP
     cd $NOGIT_DIR_TMP
@@ -91,6 +97,12 @@ 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
+
     # 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.