Ich möchte klonen ein Bitbucket Repository zu einem anderen Bitbucket Repository. schaffe ich dies mit einem Shell-Skript, das macht folgendes:Wie kann ich Pull-Requests von Git-Spiegel-Klon ausschließen
git clone --mirror <sourceUrl>
git remote set-url --push origin <targetUrl>
git push --mirror
jetzt die folgende Fehlermeldung erhalte ich beim Schieben weil Bitbucket erlaubt keine Pull-Anforderungen zu drücken (die auf der Quelle Bitbucket erstellt werden):
remote: You are attempting to update refs that are reserved for Bitbucket's pull
remote: request functionality. Bitbucket manages these refs automatically, and they may
remote: not be updated by users.
remote:
remote: Rejected refs:
remote: refs/pull-requests/21/from
remote: refs/pull-requests/23/from
remote: refs/pull-requests/23/merge
remote: refs/pull-requests/24/from
remote: refs/pull-requests/24/merge
To ...
! [remote rejected] refs/pull-requests/21/from -> refs/pull-requests/21/from (pre-receive hook declined)
! [remote rejected] refs/pull-requests/23/from -> refs/pull-requests/23/from (pre-receive hook declined)
! [remote rejected] refs/pull-requests/23/merge -> refs/pull-requests/23/merge (pre-receive hook declined)
! [remote rejected] refs/pull-requests/24/from -> refs/pull-requests/24/from (pre-receive hook declined)
! [remote rejected] refs/pull-requests/24/merge -> refs/pull-requests/24/merge (pre-receive hook declined)
error: failed to push some refs to '...'
ich löste das Problem mit einem Hinweis von http://christoph.ruegg.name/blog/git-howto-mirror-a-github-repository-without-pull-refs.html durch die mit der folgenden Problemumgehung holen refs anzupassen.
habe ich ein neues nacktes Repository und angepasst, damit der Config die folgende Art und Weise:
[core]
repositoryformatversion = 0
filemode = true
bare = true
[remote "origin"]
fetch = +refs/heads/*:refs/heads/*
fetch = +refs/tags/*:refs/tags/*
url = <sourceUrl>
mirror = true
pushurl = <targetUrl>
Dann fahre ich ein Git-Pull-und Git Push-und alles ist in Ordnung.
Nichtsdestotrotz ist der Workaround keine schöne Lösung, da das Erstellen eines leeren, leeren Repositorys und das Überschreiben dann seltsam ist, also möchte ich eine Alternative.
Fragen:
- ich den Bedarf hinzufügen können Konfiguration mit „git clone --config“ holen (vor git clone führt er anfänglichen ist holen), aber kann ich die ursprüngliche
fetch = +refs/*:refs/*
Konfiguration auch mit dem entfernen " Git Klon "Befehl? Dies würde das Problem lösen, dass die Pull-Anfragen anfänglich gezogen werden. - Ist es möglich, die Pull-Anfragen aus dem blanken Repository nach dem Pull zu entfernen?
- Ist es möglich, die Pull-Requests vom Push auszuschließen?
ist dies ein lokaler Bitbucket-Server oder bitbucket.org? Ich wusste nicht, dass letzterer Pull-Requests ziehen konnte. Ich kann nicht reproduzieren. – tedder42
Es ist ein lokaler Bitbucket Server. –
'git show-ref | Schnitt -d '' -f2 | grep 'pull-request' | xargs -L1 git update-ref -d' – Ivan