Domanda

Ho fatto un checkout dal mio baule a un DIR locale e fatto un sacco di modifiche locali lì. Ora io non voglio commettere di nuovo al tronco, ma io preferisco fare un ramo da questa versione locale. È possibile?

Posso basta copiare il tronco ad un ramo, e poi cd DIR e svn switch al ramo?

Aggiorna : Grazie per le risposte, ha funzionato! Per riassumere i passi:

  • cd DIR
  • svn copy . new-branch-URL
  • svn switch new-branch-URL .

(notare i puntini)

È stato utile?

Soluzione

Secondo il suo aiuto svn copy riga di comando può copiare da una directory a un URL repository. Così si dovrebbe essere in grado di copiare la vostra copia di lavoro al ramo, per esempio:.

svn copy working_directory url_to_branch

Altri suggerimenti

Il Libro SVN ( http: //svnbook.red-bean.com/en/1.6/svn-book.html#svn.branchmerge.using.create ) non raccomanda la creazione di un ramo dalla copia di lavoro locale.

  

Anche se è anche possibile creare un ramo utilizzando svn copy per duplicare una directory all'interno della copia di lavoro, questa tecnica non è raccomandato. Può essere piuttosto lento, in realtà! Copia di una directory sul lato client è un'operazione tempo lineare, nel senso che ha in realtà di duplicare tutti i file e sottodirectory in quella directory copia di lavoro sul disco locale.

Al contrario, creare il primo ramo e quindi utilizzare il comando svn switch in modo da poter applicare le modifiche. Se la vostra copia di lavoro è significativamente fuori di data con il tronco poi aggiungere "@REV" all'URL di origine in cui "REV" è la revisione della copia di lavoro riportato da svn info.

  

Copia di una directory sul server, tuttavia, è un'operazione a tempo costante, ed è il modo in cui la maggior parte delle persone creano rami.

$ svn copy http://svn.example.com/repos/calc/trunk \
           http://svn.example.com/repos/calc/branches/my-calc-branch \
      -m "Creating a private branch of /calc/trunk."

Nel mio client SVN: TortoiseSVN è sufficiente:

  • tasto destro del mouse sulla directory principale che voglio ramo
  • "Per URL" selezionare la directory ramo nel repository
  • nella cornice "Crea copia nel repository da:" selezionare "copia di lavoro"

fatto:)

E 'proprio come la copia versione locale di URL del repository specificato.

Sì, è possibile farlo da SVN riga di comando e TortoiseSVN .

È necessario specificare il vostro workingcopy SVN come src e il vostro nuovo ramo come destinazione del

svn copy <file/path/to/working/copy> <URL/TO/REPOSITORY/BRANCH>

comando.

In TortoiseSVN basta puntare nella vostra copia di lavoro, scegliere "ramo / tag" dal menu contestuale e scegliere "copia di lavoro" nella sezione "Crea copia nel repository da:"

Si noti che non è una buona idea (per motivi di tracciabilità) per creare i tag in modo tale, ma per i rami è perfettamente bene.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top