10

Qualcuno mi ha inviato una richiesta di estrazione su BitBucket. La modifica in questione viene inviata sul ramo predefinito. Prima di fonderlo, vorrei fare un paio di modifiche, ma, cosa più importante, mi piacerebbe pubblicare un'anteprima di questo cambiamento, affinché la comunità possa valutarlo e vedere se sono felici.Come devo gestire una richiesta pull in BitBucket che richiede alcune modifiche?

Idealmente Vorrei tirare il cambiamento nella repo principale, ma metterlo su un ramo. Fai un paio di modifiche. Taggalo come farei con qualsiasi altro build e pubblicalo. Tuttavia, non sembra che questo sia possibile: se capisco correttamente, il ramo è "infornato" e non posso estrarre la modifica su un ramo diverso. È corretto?

Se sì, cosa posso fare invece? Potevo tirare e poi unire la seconda testa nel dimenticatoio, creando al tempo stesso un ramo dal cambiamento che ho tirato. O potrei fare il lavoro su un fork, ma questo significherebbe che non ci saranno tag associati a questa build nel repository principale. O dovrei fare qualcos'altro?

P.S. Il cambiamento in sé è di alta qualità e questo è non su come chiedere all'autore originale di migliorarlo.

+0

Sarebbe è possibile inserire le modifiche in "predefinito", ma lasciarle non raggruppate, contrassegnando con un segnalibro la nuova testina per assegnarle un'etichetta. In questo modo non hai i problemi associati alla ridefinizione. Non sono al 100% se BitBucket supporta i segnalibri. –

risposta

3

Piuttosto che utilizzare la "richiesta di ricezione accettata" di Bitbucket, è sufficiente inserire le modifiche nel repository locale. È possibile utilizzare rebase per spostare il commit (o il set di commit) su un ramo denominato. Quindi basta premere le modifiche sul repository principale di bitbucket. (Ed eventuale respingere la richiesta bibucket tirare con un commento che dice le modifiche sono state spinta per il repo principale)

Ad esempio:

se pronti contro termine è: bitbucket/ProjectA/MainRepoForProjectA

e la pullrequest da: bitbucket/QualcheUtente/MainRepoForProjectA

  1. tiro da bitbucket/QualcheUtente/MainRepoMainRepoForProjectA
  2. rebase ai nuovi commit passati al ramo con nome.
  3. Apporta le modifiche aggiuntive che desideri apportare.
  4. spinta per bitbucket/ProjectA/MainRepoMainRepoForProjectA

Nota: Se non avete mai usato prima di allora rebase:

  1. abilitarlo in File TortoiseHg -> Impostazioni -> Estensioni
  2. Aggiornamento alla testa del ramo si desidera spostare anche le modifiche.
  3. Fare clic destro sulla base dei cambiamenti di spostare -> Modifica Storia -> REBASE
2

Che accettare una richiesta di pull non è descritto nel docs; proverà a fondersi e tu potrai risolvere i conflitti. I documenti dicono che è possibile impostare il ramo di destinazione quando si crea la richiesta di pull. Ma dal momento che il tuo ramo non esisteva ancora, il tuo contributore non poteva sceglierlo.

Quindi dovrete tirare sul vostro computer locale e move some commits to a new branch in Hg quindi spingere sul vostro bitbucket.

Leggi la referenza docs perché la modifica della cronologia avrà conseguenze sulla validità del repository dei contributori, dovrà ricominciare da capo per essere nuovamente sincronizzato con te. Questo può diventare ingombrante se ha già un altro codice di alta qualità pronto per te.

0

Uno può tirare il codice per la richiesta di pull come:

git fetch origin refs/pull-requests/$PR_NO/from:$LOCAL_BRANCH