Ich habe den folgenden Code, wo ich Änderungen in meinem Zweig zu Gerrit mit GitpYthon schieben soll.Push Refs/für/Master und Change-ID Problem mit Gitpython
repo_path_new = repo_path+repo_name
repo_obj = Repo(repo_path_new)
os.chdir(repo_path_new)
repo_obj.git.add(A=True)
if commit_command_line(commit_message, repo_obj, repo_name):
repo_obj.git.push("origin", "HEAD:refs/for/master")
Sie fügt hinzu und schreibt die Datei (en), aber wenn ich zu Refs schieben wollen/für/Master bekomme ich ein Problem aufgetreten:
remote: Processing changes: refs: 1, done
remote: ERROR: [0f7c907] missing Change-Id in commit message footer
remote:
remote: Hint: To automatically insert Change-Id, install the hook:
remote: gitdir=$(git rev-parse --git-dir); scp -p -P port
[email protected]:hooks/commit-msg ${gitdir}/hooks/
remote: And then amend the commit:
remote: git commit --amend
remote:
To ssh://url:port/repo-name
! [remote rejected] HEAD -> refs/for/master ([0f7c907] missing Change-Id in commit message footer)
error: failed to push some refs to 'ssh://url:port/repo-name''
Sie beachten Sie, dass ich in der geklonten stehe Repo. Natürlich kann ich die git hook change-id manuell in git bash installieren. Aber da dies automatisch geschehen soll, möchte ich wissen, ob es einen Weg gibt, dies über gitpython zu tun.
Ich habe das Repository manuell geklont. Wenn ich die Art installiere, wie Sie sagten, funktioniert es, aber da dieses Skript in der Go-CD (genau wie Jenkins) ausgeführt wird, gibt es keine Möglichkeit zu sagen, dass der commit-msg-Hook existiert. In meinem Code rufe ich dort die erste Option an, die du mir gegeben hast und es scheitert an gitdir (kann es nicht finden). – user535081
Können Sie go-cd so einstellen, dass ein Bash-Skript (mit den Befehlen zum Installieren des Hooks commit-msg) direkt nach dem Klonen des Repository und vor dem Ausführen des gitpython-Skripts ausgeführt wird? –