Effettua il commit delle modifiche in un ramo diverso da quello attualmente estratto con subversion


115

Ho lavorato sul codice estratto dalla linea di sviluppo e ho scoperto che le modifiche apportate potrebbero interrompere le modifiche e devono essere spostate in un ramo sperimentale prima di eseguire il commit nell'albero di sviluppo principale. Tuttavia, non ho verificato il ramo sperimentale e non voglio perdere le modifiche già apportate.

C'è un modo per salvare le modifiche nella cartella di lavoro in un ramo diverso da quello originariamente estratto?

Risposte:


129

Dovresti prima creare un ramo da un noto sourceURL(questa sarebbe la tua 'linea di sviluppo' che hai menzionato nella domanda) prima:

svn copy sourceURL branchURL

Quindi, passa a quel ramo:

svn switch branchURL

E salva le tue modifiche:

svn commit

55

Potresti farlo in TortoiseSVN in questo modo:

  • Fare clic con il tasto destro sulla directory in cui si trovano le modifiche che si desidera ramificare. Non deve essere la radice del repository, a meno di duplicare in quel modo;
  • Seleziona TortoiseSVN -> " Branch / tag ... ";
  • Imposta su URL : "svn: // host / repository / FooBar / branch / FooBarBranchName";
  • Assicurati che [*] Copia di lavoro sia selezionata . Ciò garantirà che le modifiche vengano applicate;
  • Messaggio di registro : "Esperimento con le mosche :)";
  • Facoltativo: seleziona [*] Cambia la copia di lavoro in un nuovo ramo / tag . Ciò è utile se prevedi di continuare a lavorare sul nuovo ramo. Anche se puoi passare ad esso anche in seguito.
  • Prova a trovare il pulsante OK . Suggerimento: è nella parte inferiore della finestra centrata.

Godere!


Cosa intendi con "Non deve essere la radice del repository, a meno di duplicare in quel modo"?
thekozak

Consiglio di non scegliere la cartella principale con tutte le sottocartelle irrilevanti che non sono soggette a modifica nel ramo. Successivamente sarà più facile unire il ramo (più piccolo) al tronco.
J Pollack

Nel mio caso il commit solo di quella cartella ha causato problemi perché il software dipende anche dalle supercartelle. Penso che sia il più delle volte il caso. Penso che per la maggior parte dei casi d'uso sia meglio eseguire il commit dell'intera operazione, quindi è consigliabile eseguire il commit dalla radice che dico.
ikku100

@ ikku100 se non ci fossero modifiche in quelle supercartelle, che importanza avrebbe?
simpleuser

Potrebbe perché le persone in seguito potrebbero eseguire il commit delle modifiche lì, ma immagino che tu possa controllare la revisione corretta della supercartella e quindi estrarre il ramo per la sottocartella. Che è più lavoro che impegnarsi con il superdir, penso.
ikku100

8

È possibile creare un nuovo ramo direttamente dalla directory di lavoro e passare la directory di lavoro a quel ramo.

I comandi sono svn copyesvn switch

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.