2012-02-07 12 views
15

Ho iniziato a utilizzare SourceTree alcuni giorni fa per gestire repository Mercurial con il mio Mac. Ora mi sono imbattuto nel problema quando spingevo al mio repository remoto creava un nuovo capo su un nuovo ramo e mi piacerebbe forzarlo.Forza push con SourceTree

Tuttavia, non sono in grado di trovare alcuna opzione specifica in SourceTree che mi consente di impostare l'opzione di forzatura per una spinta. È solo la mia incapacità di trovarlo o non c'è alcuna possibilità di impostarlo?

Grazie in anticipo Michael

+3

Non sono le tue risposte (mai usate sourcetree), ma dalla riga di comando è preferibile usare 'hg push --new-branch' invece di' hg push --force'. La ragione per cui '--force' può ignorare tutti i tipi di" Sei sicuro ?! " messaggi che includono (a) nuovo capo su un ramo esistente e, più importante (b) repository completamente indipendenti. L'uso di '--new-branch' si ferma/ti avverte in questi altri due casi. –

risposta

13

SourceTree è finalmente sta per aggiungere forza di spinta: https://jira.atlassian.com/browse/SRCTREE-1156

Motivo: https://answers.atlassian.com/questions/54469/how-do-i-perform-a-forced-push-push-f-from-sourcetree

Edit: Ora è aggiunto in SourceTree, ma è necessario attivare l'opzione nelle impostazioni.

+1

nota che questo è disponibile solo nella versione 1.6, che è appena uscito in beta dalla scorsa settimana: http://blog.sourcetreeapp.com/2013/03/28/sourcetree-for-mac-1-6-beta/ –

+0

Sei sicuro che sia nella prima beta? Non ho potuto vedere l'opzione e il problema in Jira mostra ancora "in corso". – Zammbi

+1

Lo stato di Jira viene visualizzato come Chiuso per me, ma la funzionalità descritta nel ticket non sembra essere implementata (ancora?) Nella prima beta. Spero nel secondo?Il rebase interattivo (per Git) rende la beta degna di essere scaricata anche senza forzature (almeno per me). –

2

SourceTree (come di ver. 1.4.2) emette un hg push --new-branch, se necessario, quindi, se si crea un nuovo ramo (invece di avere due teste su un ramo), basta fare una spinta regolare (RepositoryPush). È possibile specificare, facoltativamente, un ramo che si desidera premere se si dispone di changeset in uscita su più rami.

Non è stato possibile trovare un modo per eseguire correttamente un hg push --force tramite le finestre di dialogo SourceTree. Sono d'accordo con @ Ry4an che questa opzione è più pericolosa che utile. Non ho mai fatto un push di forza da quando è stato introdotto lo --new-branch, e non ho mai avuto bisogno di combinare repository non collegati o di premere un ramo a due teste (una forza di trazione è molto più sicura).

Concludo che in una rara occasione in cui è necessaria una spinta di forza, l'apertura del Terminale non farà male. In caso di disaccordo, si prega di condividere il flusso di lavoro nei commenti.

+0

Penso che l'opzione '--new-branch' sia abbastanza ora, dal momento che abbiamo modificato il flusso di lavoro un po '(come suggerito indirettamente;). Grazie per l'aiuto! –

+1

Non sono sicuro per Mercurial, ma per Git, un flusso di lavoro di rebase è abbastanza comune. Tutta la nostra compagnia usa SourceTree per tutto, ma invece di tirare/fondere, invece, rebase il nostro ramo attuale in cima al ramo su cui desideriamo fonderci. La ridefinizione utilizzando SourceTree va benissimo, ma è inutile quando non possiamo forzare le nostre modifiche sul nostro telecomando! Quindi dovremo strappare il terminale aperto ad ogni "unione". Perché disabilitare funzionalità pericolose, piuttosto che esporle con molti avvisi? – Tim

+0

@Tim: Credo che la spinta della forza in Git differisca dalla spinta della forza in Mercurial. Se devi eseguire una forza push dopo rebase in Mercurial, probabilmente non ti piacerà il risultato (due copie dello stesso ramo nel repository remoto). Per quanto riguarda Git, non posso dire. – Helgi