问题
I have a Gerrit installation within which are several related projects (each in a git repository). Another project is coming online would also use gerrit, but for the sake of tidiness I'd like to take the existing set of projects and put them under a new super-project (so that at the top level one sees the "umbrella" projects. I'd also like to retain the data we have for this (e.g., the review history).
How does one go about doing something like this? Another way of looking at this is, how does one move a sub-project in gerrit from one super-project to another?
回答1:
Thanks to this blog post I stumbled upon this morning, I found a solid path to the solution! While it's not exactly simple it's robust and it works.
Ensure you've already created the umbrella project you will be re-parenting the subproject to, and perform the following steps:
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
来源:https://stackoverflow.com/questions/13738526/how-can-one-take-several-top-level-projects-in-gerrit-and-move-them-under-anothe