webentwicklung-frage-antwort-db.com.de

Checkout-Bitbucket-Pull-Anforderungen lokal

Ich habe diesen Gist gefunden: https://Gist.github.com/kennethreitz/3709868

Ich benutze bitbucket und suche nach einer ähnlichen Funktion. 

Kannst du mir helfen? Vielen Dank

25
moylop260

Man kann den Code aus den Pull-Anfragen des Bitbucket Server abrufen mit:

git fetch Origin refs/pull-requests/$PR_NO/from:$LOCAL_BRANCH
16
Ducaz035

Ich fand diese Antwort und dachte, dass es tatsächlich möglich war, Refs für eine Pull-Anfrage auf Bitbucket abzurufen. 

ist es aber nicht.

Die Antwort auf die Frage des OP lautet:es ist NICHT möglich: Es gab ein Problem mit der Anforderung offener Funktionen , das unbeantwortet und unbeaufsichtigt war vierfünf SECHSJahre.

Die Problemumgehung? 

Sie können die PR als .patch-Datei herunterladen, die Sie herunterladen und auf einen neuen Zweig anwenden können, den Sie manuell erstellen. Sie können Updates jedoch nicht ohne weiteres anwenden.

Ich habe einen anderen Ausweg gefunden, den ich in git-repo implementiert habe, damit jeder es benutzen kann. Ich benutze die API, um die Remote- und Zweigstelle der PR abzurufen und automatisch eine neue Upstream- und Zweigstelle lokal zu erstellen. So erhalten Sie Updates vom PR-Poster. Der Nachteil ist das Durcheinander von Git-Fernbedienungen.

13
zmo

Ich folgte diesem Artikel Pullabruf .

Es hat funktioniert, aber ich habe herausgefunden, dass ich nur eine Zeile zum aktuellen Repo hinzufügen muss, anstatt ein Folk-Repo und ein Upstream-Repo zu erstellen. Führen Sie diese Zeile aus

git config --add remote.Origin.fetch '+refs/pull-requests/*/from:refs/remotes/Origin/pr/*'

Sie können es auch manuell zur Datei .git/config in Ihrem Projekt hinzufügen.

Beim nächsten Lauf git pull sollte eine Liste angezeigt werden:

  • [neue ref] refs/pull-request/488/von -> Origin/pr/488
  • [new ref] refs/pull-request/666/from -> Origin/pr/666

Dann können Sie git checkout Origin/pr/666 ausführen, um die Änderungen der Pull-Anforderung abzurufen.

4
Awpstar

Der einfachste Weg, dies zu tun, scheint immer noch ein Patch der Pull-Anfrage zu sein. Basierend auf dieser Frage ist die Antwort von Alexandre der einzige Weg, dies zu tun. Es verwendet dieses BitBucket-API call.

Ich habe das folgende Bash-Skript verwendet:

USER=username
PASSWORD=password
REPO=repo-name
PULL_NO=42
OUTPUT_FILE=output.patch

# Add -i to include the HTTP-header in the output for debugging
curl -u $USER:$PASSWORD https://bitbucket.org/api/2.0/repositories/$USER/$REPO/pullrequests/$PULL_NO/patch -L -o $OUTPUT_FILE

Speichern Sie das in einer Datei mit dem Namen pull-patch.sh und geben Sie die Umgebungsvariablen mit Ihren Kontodetails ein. Das Skript erfordert, dass Sie curl installiert haben (z. B. Sudo apt install curl). Dann renne:

chmod +x pull-patch.sh
./pull-patch.sh

Eine Datei mit dem Namen output.patch sollte aus der Pull-Anforderung erstellt werden.

0
Silveri

Wenn die Pull-Anfrage nicht ausgecheckt werden kann, besteht der Trick darin, dass Sie das letzte Commit dieser Pull-Anfrage abchecken können

git checkout <hash code of last commit>
0
onalbi

Pull-Anfragen abrufen/auschecken

Dies funktioniert für Bitbucket. Andere Server könnten einen anderen refs: ( refspecs ) oder gar keinen refs: haben.

Erstes Mal

Zunächst müssen Sie die Pull-Anforderung refs: des Remote-Repositorys hinzufügen. Um dies mit einem Repository zu tun (z. B. Alias ​​'Upstream'):

git config --add remote.upstream.fetch '+refs/pull-requests/*/from:refs/remotes/upstream/pull-requests/*'

Das heißt, Sie fügen die letzte Zeile in git .config-Datei hinzu:

[remote "Origin"]
   url = ssh://[email protected]/~user/repository.git
   fetch = +refs/heads/*:refs/remotes/Origin/*
   fetch = +refs/pull/*/head:refs/remotes/Origin/pull-requests/*

Abruf

Wenn Sie dann das entfernte fetch ausführen, sollten Sie (auch) alle Pull-Requests abrufen:

git fetch upstream

From ssh://git.blablabla.net/somepath/repository
 * [new ref]         refs/pull-requests/1188/from -> upstream/pull-requests/1188
 * [new ref]         refs/pull-requests/1741/from -> upstream/pull-requests/1741
 * [new ref]         refs/pull-requests/2394/from -> upstream/pull-requests/2394

Auschecken

Zum Schluss können Sie die gewünschte Pull-Anfrage auschecken:

git checkout pull-requests/2723

Erfolgreich getestet auf dediziertem Bitbucket-Server 27.02.19.

0
Alex Gidan