chiark / gitweb /
provide a global temporary directory
[topgit.git] / hooks / pre-commit.sh
index b6361c52a024e58721ddda8275f3a7d56ce524f5..c52a26847c90eb36a0a5e0fdb09c1e142ba7f416 100644 (file)
@@ -78,6 +78,9 @@ BEGIN      { in_hunk = 0; }
 /^[^@ +-]/ { in_hunk = 0; }
 ' |
        while read newly_added; do
+               ref_exists "$newly_added" ||
+                       die "Invalid branch as dependent: $newly_added"
+
                # check for self as dep
                [ "$head_" != "$newly_added" ] ||
                        die "Can't have myself as dep"
@@ -91,5 +94,13 @@ BEGIN      { in_hunk = 0; }
                no_remotes=1 recurse_deps check_cycle_name "$newly_added"
        done
 
-
-# TODO: Verify .topdeps for valid branch names
+# check for repetitions of deps
+depdir="$(get_temp tg-depdir -d)" ||
+       die "Can't check for multiple occurrences of deps"
+cat_file "(i):.topdeps" |
+       while read dep; do
+               [ ! -d "$depdir/$dep" ] ||
+                       die "Multiple occurrences of the same dep: $dep"
+               mkdir -p "$depdir/$dep" ||
+                       die "Can't check for multiple occurrences of deps"
+       done