diff options
-rw-r--r-- | README.md | 4 | ||||
-rwxr-xr-x | git2private | 32 | ||||
-rwxr-xr-x | git2redcrew | 58 |
3 files changed, 94 insertions, 0 deletions
@@ -46,6 +46,10 @@ git-svn(1) doesn’t really work with tags, it just creates branches called like tags. This script makes tags out of those branches. +git2redcrew and git2private: +---------------------------- + +Create copy of the current repo (or named repo) on private server. ---- diff --git a/git2private b/git2private new file mode 100755 index 0000000..87e10f6 --- /dev/null +++ b/git2private @@ -0,0 +1,32 @@ +#!/bin/sh + +set -eux + +if [ -d .git ] ; then + git gc --aggressive --prune=now + REPO="$(basename $(git rev-parse --show-toplevel))" + cd .. +else + [ -n "$1" ] || exit 1 + REPO="$1" + (cd "$REPO" + git gc --aggressive --prune=now + ) +fi +GITDIR="$(readlink -f "${REPO}").git" +git clone --bare "$REPO" "${GITDIR}" +(cd "${GITDIR}" + # shellcheck disable=SC3045 + read -r -e -p "Describe the repository:" DESC + echo "$DESC" >description + touch git-daemon-export-ok + git config --add gitweb.owner 'Matěj Cepl <mcepl@cepl.eu>' + git remote rm origin || /bin/true +) + +rsync -avz "${GITDIR}" redcrew:private_git/ +rm -rf "${GITDIR}" +cd "$REPO" +git remote add myrepo "redcrew:private_git/${REPO}.git" +git remote update +git push --all -u myrepo diff --git a/git2redcrew b/git2redcrew new file mode 100755 index 0000000..0648f5c --- /dev/null +++ b/git2redcrew @@ -0,0 +1,58 @@ +#!/bin/sh + +set -uex + +SUBDIR="" + +while getopts ":d:" opt; do + case $opt in + d) + SUBDIR="$OPTARG" + ;; + \?) + echo "Invalid option: -$OPTARG" + exit 1 + ;; + :) + echo "Option -$OPTARG requires an argument." + exit 1 + ;; + esac +done + +# Shift past the last option parsed by getopts +shift $((OPTIND-1)) + +if [ -d .git ] ; then + git gc --aggressive --prune=now + REPO="$(basename "$(git rev-parse --show-toplevel)")" + cd .. +else + [ -n "$1" ] || exit 1 + REPO="$1" + (cd "$REPO" + git gc --aggressive --prune=now + ) +fi + +GITDIR="$(readlink -f "${REPO}").git" +git clone --bare "$REPO" "${GITDIR}" +(cd "${GITDIR}" + # shellcheck disable=SC3045 + read -r -e -p "Describe the repository:" DESC + echo "$DESC" >description + touch git-daemon-export-ok + git config --add gitweb.owner 'Matěj Cepl <mcepl@cepl.eu>' + git remote rm origin || /bin/true +) + +rsync -avz "${GITDIR}" redcrew:/srv/git/ +rm -rf "${GITDIR}" +cd "$REPO" +git remote add myrepo "https://git.cepl.eu/cgit/${REPO}" +git remote set-url --push myrepo "redcrew:/srv/git/${REPO}.git" +# if git remote show gitlab >/dev/null 2>&1 ; then +# git remote remove gitlab +# fi +git remote update +git push --all -u myrepo |