summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2020-07-01 09:58:47 +0200
committerErich Eckner <git@eckner.net>2020-07-01 09:58:47 +0200
commitdfa1bb4e5dec5bc3c8e49b842bec28feec560a0b (patch)
tree22bc191d42965ad182b55d4eb6aea1c0f4abb8f9
parent85b289069a9a8a8c92c9644ebdef6a59cf3afffb (diff)
downloadgit-inverse-archive-dfa1bb4e5dec5bc3c8e49b842bec28feec560a0b.tar.xz
soweit funktionstüchtig
-rwxr-xr-xgit-inverse-archive20
1 files changed, 16 insertions, 4 deletions
diff --git a/git-inverse-archive b/git-inverse-archive
index c4b2ec7..91122bf 100755
--- a/git-inverse-archive
+++ b/git-inverse-archive
@@ -12,12 +12,24 @@ if [ $# -ne 1 ] || [ ! -d "${git_dir}" ]; then
exit 1
fi
+tar_ball="$1"
+
tmp_dir=$(mktemp -d)
trap 'cd /; rm -rf --one-file-system "${tmp_dir}"' EXIT
cd "${tmp_dir}"
-git clone "${git_dir}" .
-git -C "${git_dir}" rev-parse HEAD
+git clone -q "${git_dir}" . || exit $?
+git checkout -q $(git -C "${git_dir}" rev-parse HEAD) || exit $?
+git clean -qxdf .
+git archive HEAD \
+| tar -t \
+| xargs -r rm
+
+bsdtar -C "${tmp_dir}" -xf "${tar_ball}" --strip-components 1 || exit $?
+
+tar_ball="${tar_ball##*/}"
-#bsdtar -C "${tmp_dir}" -xf "$1" --strip-components 1
-find "${tmp_dir}"
+git add .
+git commit -qm "${tar_ball}"
+git checkout -b "${tar_ball%.tar*}"
+git push --set-upstream origin "${tar_ball%.tar*}"