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
|
||||
set -e
|
||||
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 pushurl=ssh://$login@git.jannet.de/srv/git/$login/proj/$p
|
||||
marker "pulling $p from user $fromuser"
|
||||
if [ "$fromuser" = "$login" ]; then
|
||||
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`
|
||||
if [ -d $p ]; then
|
||||
git -C $p pull
|
||||
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
|
||||
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
|
||||
if [ -d $p ]; then
|
||||
git -C $p remote | grep -q "^$fromuser$" || {
|
||||
git -C $p remote add $fromuser
|
||||
git -C $p remote set-url --fetch $fromuser $pullurl
|
||||
git -C $p remote set-url --push $fromuser no_push
|
||||
}
|
||||
git -C $p pull $fromuser
|
||||
else
|
||||
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
|
||||
done
|
||||
)}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue