3

私はGerritをインストールしており、その中にいくつかの関連プロジェクトがあります(それぞれがgitリポジトリにあります)。オンラインになる別のプロジェクトも gerrit を使用しますが、整理のために、既存の一連のプロジェクトを新しいスーパー プロジェクトの下に置きたいと思います (トップ レベルで「傘」プロジェクトが表示されるようにするため)。 . また、これに関するデータ (レビュー履歴など) も保持したいと思います。

このようなことを行うにはどうすればよいでしょうか。これを見る別の方法は、gerrit のサブプロジェクトをあるスーパープロジェクトから別のスーパープロジェクトに移動するにはどうすればよいかということです。

4

1 に答える 1

3

今朝偶然見つけたこのブログ投稿のおかげで、解決策への確実な道筋が見つかりました! 単純ではありませんが、堅牢で機能します。

サブプロジェクトの親を変更するアンブレラ プロジェクトが既に作成されていることを確認し、次の手順を実行します。

MYGERRIT=ssh://${MYGERRIT_IP}:${MYGERRIT_PORT}

mkdir ~/x
cd ~/x

# Clone the repo for the subproject you want to re-parent
git clone ${MYGERRIT}/<subproject>
cd <subproject>

git fetch origin refs/meta/config:refs/remotes/origin/meta/config
git checkout meta/config

# Make changes to project.config
-----> inheritFrom = <your_umbrella_project_name>

# Commit changes
git add -A
EDITOR=vi git commit -a

# Push changes
git push origin meta/config:meta/config # If pushing directly
#git push origin meta/config:refs/for/meta/config # If going through gerrit

# Flush gerrit caches
ssh -p ${MYGERRIT_PORT} ${MYGERRIT_IP} gerrit flush-caches --cache project_list
ssh -p ${MYGERRIT_PORT} ${MYGERRIT_IP} gerrit flush-caches --cache projects
于 2012-12-06T20:01:11.410 に答える