Move git repository from Github to Gerrit automatically
Asked Answered
C

1

0

Need to push existing git repo to Gerrit however have issues doing this:

remote: ERROR: missing Change-Id in commit message footer

because repo did not contain .git/hooks/commit-msg. Now I have the script installed, however need to change hundreds of commit messages to add Change-Id everywhere. How to make it automatically in the best and easiest way? Possible solutions:

  1. I see some topics here suggest to use git rebase -i, however it is interactive and mostly manual process.
  2. Others to use sed command with git rebase as commit message editor. What is the exact rebase command will be in my case?
  3. Third proposes to use git filter-branch command, however it works only for commits on a current branch that have not yet been pushed to an upstream branch.

Any other solutions, fixes or suggestions for the above? Thanks!

Catlin answered 13/9, 2018 at 20:22 Comment(4)
It seems nonsensical that Gerrit would require retroactively addding Change-Ids to an existing Git repository. Does this help? #14790166Blaseio
@Schwern, our Gerrit set up to prohibit direct pushing bypassing review, or I do not have access rights to do this: command git push gerrit HEAD:master produces error: ! [remote rejected] HEAD -> master (prohibited by Gerrit)Catlin
It seems you can bypass review by pushing to HEAD:refs/heads/master. See https://mcmap.net/q/303869/-push-bypasses-gerrit-code-review-tortoisegit and gerrit-review.googlesource.com/Documentation/…Blaseio
@Schwern, no I can't: still ` ! [remote rejected] HEAD -> master (prohibited by Gerrit)`. As mentioned in comment for https://mcmap.net/q/303869/-push-bypasses-gerrit-code-review-tortoisegit: this requires the 'Push' permission to be set on the 'Reference:refs/heads/*' section of the gerrit access panel.Catlin
Z
1

You need to do talk to the Gerrit administrators and ask for permission to push direct to branch bypassing review. Explain what you're trying to do telling that you just need this permission temporally (after the execution of the "git push gerrit HEAD:refs/heads/master" command the permission can be removed).

Other possibility: ask to the Gerrit administrators or someone who has permission to push to refs/heads/* (configuration managers use to have such permission) to execute the command for you.

Do NOT change retroactively the past commits, this isn't a good idea.

Zest answered 14/9, 2018 at 1:35 Comment(1)
I do not have possibility for now to get this rights, so it is not the case. Need some solution for the 2nd point.Catlin

© 2022 - 2024 — McMap. All rights reserved.