summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2019-12-20 21:22:45 -0700
committerSean Whitton <spwhitton@spwhitton.name>2019-12-20 21:22:45 -0700
commitc74c935b5ea166bb47d9085f2153c99736da06a1 (patch)
tree81617899ba25b0af5ed118005ae5c2b313504db8
parentbd3399446592e3396f0af793a89761abe62e6702 (diff)
downloaddotfiles-c74c935b5ea166bb47d9085f2153c99736da06a1.tar.gz
add untested annex-to-annex-reinject
-rwxr-xr-xbin/annex-to-annex-reinject29
1 files changed, 29 insertions, 0 deletions
diff --git a/bin/annex-to-annex-reinject b/bin/annex-to-annex-reinject
new file mode 100755
index 00000000..0e95680a
--- /dev/null
+++ b/bin/annex-to-annex-reinject
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+set -e
+
+if [ $# -ne 2 ]; then
+ echo >&2 "usage: annex-to-annex-reinject SOURCEANNEX DESTANNEX"
+ exit 1
+fi
+
+source="$1"
+dest="$2"
+source_annex_dir="$source/$(git -C $source rev-parse --git-path annex)"
+dest_annex_dir="$dest/$(git -C $dest rev-parse --git-path annex)"
+
+if ! [ -d "$source_annex_dir" ]; then
+ echo >&2 "$source doesn't look like a git annex"
+ exit 1
+fi
+if ! [ -d "$dest_annex_dir" ]; then
+ echo >&2 "$dest doesn't look like a git annex"
+ exit 1
+fi
+
+chmod -R u+w "$source_annex_dir/objects"
+find "$source_annex_dir/objects" -type f \
+ -exec git -C "$dest" annex reinject --known '{}' +
+find "$source_annex_dir/objects" -empty -type d -delete
+chmod -R u-w "$source_annex_dir/objects"
+git -C "$source" annex fsck --all --fast