C'è un modo per commettere modifiche che ho apportato al mio checkout di Trunk SVN su un ramo?
Domanda
Ho appena iniziato a lavorare su alcuni cambiamenti contro Trunk su un repository SVN, pensando che sarebbero stati un po 'piccoli. Ora, in realtà sto cominciando a rendermi conto che probabilmente avrei dovuto iniziare invece un nuovo ramo. Piuttosto che fare un ramo, e quindi spostare ogni singolo pezzo in esso, c'è un modo per fare un nuovo ramo e quindi commettere le modifiche nella mia copia funzionante?
Soluzione
- Crea una nuova filiale dal luogo in cui hai iniziato a sviluppare
- Passa al ramo appena creato
- commettere i cambiamenti locali (si impegnerà nella nuova filiale)
Non fare alcuna checkout
Lo faccio con SVN 1.6.5, funziona senza problemi, ma se sei davvero paranoico potresti fare seguendo:
- Crea una patch dalla copia di lavoro corrente
- Crea un ramo
- Passa ad esso
- Applica la patch
- commettere
Altri suggerimenti
Che ne dici di creare una patch dal tuo lavoro attuale con svn diff
, Quindi fare un nuovo ramo e applicare la patch al ramo con patch -p0
?
Puoi ramificare direttamente lo stato della tua copia funzionante in un URL con il svn copy
comando. La filiale creata includerà le modifiche locali.
Alcuni gotchas:
- Puoi ottenere errori che indicano qualcosa come "il file esiste già". Ciò è causato da una mancata corrispondenza di revisioni di base nella copia funzionante, più specificamente tra un file e la sua cartella principale. Una possibile soluzione è fare un
svn update
Prima di tentare di ramificare in questo modo. - dopo il
svn copy
, la copia funzionante sarà invariata. Indicherà ancora il bagagliaio. Mostrerà anche le modifiche locali nel suo stato. Dovresti prima ripristinare queste modifiche, sia che tu continui a utilizzare la copia funzionante così come è o passarla al nuovo ramo.