有一个运行Gerrit的服务器,而我没有SSH登录权限。不过,我有一个具有管理员权限的Gerrit帐户。
我如何创建一个新的Gerrit项目,然后将远程Git仓库导入其中?我希望所有信息都被迁移,例如分支和标签。
以下是更多信息:
Gerrit服务器主机名:gerrit.example.com
旧的Git repo URL:ssh://git@git.example.com/foobar
新的Gerrit项目名称:foobar
具有管理员权限的Gerrit用户帐户:erik
您可以在本地桌面上运行此Shell脚本。脚本中设置了Shell变量以匹配您的情况。
#!/bin/sh
# Replace these variable values according to your situation
gerritproject=foobar
gerritserver=gerrit.example.com
gerritadmin=erik
giturl=ssh://git@git.example.com/foobar
set -e
gitdir=`mktemp -d`
ssh -p 29418 $gerritadmin@$gerritserver gerrit create-project --name $gerritproject
cd $gitdir
git clone --mirror $giturl tmpname
cd tmpname
git remote add gerritremote ssh://$gerritadmin@$gerritserver:29418/$gerritproject
git push gerritremote refs/*:refs/*
--mirror
克隆并推送refs/:refs/*。 - Magnus Bäck