mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 12:03:31 +01:00
pgit.sh: Add support for pulling other user's projects as branch into existing
Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
e5bad17e18
commit
521c7752bb
1 changed files with 26 additions and 17 deletions
|
|
@ -65,27 +65,36 @@ clone()
|
||||||
fi
|
fi
|
||||||
set -e
|
set -e
|
||||||
for p in $projects; do
|
for p in $projects; do
|
||||||
[ -d $p ] && {
|
|
||||||
marker "skipping existing $p"
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
marker "cloning $p"
|
|
||||||
local pullurl=ssh://$login@git.jannet.de/srv/git/$fromuser/proj/$p
|
local pullurl=ssh://$login@git.jannet.de/srv/git/$fromuser/proj/$p
|
||||||
local pushurl=ssh://$login@git.jannet.de/srv/git/$login/proj/$p
|
local pushurl=ssh://$login@git.jannet.de/srv/git/$login/proj/$p
|
||||||
|
marker "pulling $p from user $fromuser"
|
||||||
if [ "$fromuser" = "$login" ]; then
|
if [ "$fromuser" = "$login" ]; then
|
||||||
git clone ssh://$login@git.jannet.de/srv/git/$fromuser/proj/$p
|
if [ -d $p ]; then
|
||||||
git -C $p submodule init || fatal git submodule init failed in `pwd`
|
git -C $p pull
|
||||||
git -C $p submodule update || fatal git submodule update failed in `pwd`
|
else
|
||||||
|
git clone ssh://$login@git.jannet.de/srv/git/$fromuser/proj/$p
|
||||||
|
git -C $p submodule init || fatal git submodule init failed in `pwd`
|
||||||
|
git -C $p submodule update || fatal git submodule update failed in `pwd`
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
set -x
|
if [ -d $p ]; then
|
||||||
$git_srv_admin -u $login -j create-personal-project $p
|
git -C $p remote | grep -q "^$fromuser$" || {
|
||||||
git clone ssh://$login@git.jannet.de/srv/git/$fromuser/proj/$p
|
git -C $p remote add $fromuser
|
||||||
git -C $p remote rename origin $fromuser || fatal failed to rename remote in `pwd`
|
git -C $p remote set-url --fetch $fromuser $pullurl
|
||||||
git -C $p remote set-url --push $fromuser no_push
|
git -C $p remote set-url --push $fromuser no_push
|
||||||
git -C $p remote add origin $pushurl
|
}
|
||||||
git -C $p submodule init || fatal git submodule init failed in `pwd`
|
git -C $p pull $fromuser
|
||||||
git -C $p submodule update || fatal git submodule update failed in `pwd`
|
else
|
||||||
set +x
|
set -x
|
||||||
|
$git_srv_admin -u $login -j create-personal-project $p
|
||||||
|
git clone ssh://$login@git.jannet.de/srv/git/$fromuser/proj/$p
|
||||||
|
git -C $p remote rename origin $fromuser || fatal failed to rename remote in `pwd`
|
||||||
|
git -C $p remote set-url --push $fromuser no_push
|
||||||
|
git -C $p remote add origin $pushurl
|
||||||
|
git -C $p submodule init || fatal git submodule init failed in `pwd`
|
||||||
|
git -C $p submodule update || fatal git submodule update failed in `pwd`
|
||||||
|
set +x
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
)}
|
)}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue