2012-11-01 9 views
5
  1. creo un ramo,
  2. poi aggiungo una nuova cartella e un nuovo file in quella cartella (cioè ramo),
  3. Poi ho preforme un svn add e svn commit.

Quindi faccio svn merge nel bagagliaio. Quando eseguo il comando svn commit nel mio trunk, la cartella New viene "Aggiunto" ma il file all'interno della cartella ottiene l'azione "Sostituisci".Subversion "Sostituzione" Azione

Perché ottengo uno stato Sostituire su questo file?

+1

Hai avuto un file con lo stesso nome nel bagagliaio prima dell'unione? – SomeWittyUsername

risposta

2

Secondo il TortoiseSVN Manualsostituito Stato significa:

L'articolo originale è stato eliminato e un nuovo elemento con lo stesso nome lo sostituisce.

Quindi ovviamente dovresti ricontrollare le azioni che hai eseguito. Hai revisioni precedenti con la stessa cartella e i file (intendo i loro nomi)?

0

Avete cartelle/file nella vostra copia locale che sono stati cancellati (localmente) e non commessi? Se nel bagagliaio era presente una cartella/un file che è stato eliminato localmente, tale eliminazione deve essere confermata nel repository.

La situazione sembra che potresti non avere una copia locale simultanea. Ad esempio, potresti aver cancellato una cartella/file nella tua copia locale e non averlo eseguito. Quindi, quando si tenta di unire un ramo con la propria copia locale, la cartella/file eliminati localmente (contrassegnata per l'eliminazione, ma non impegnata) viene sostituita dalla cartella del ramo con lo stesso nome. Poiché la cancellazione della cartella/file non è stata precedentemente commessa, lo stato ufficiale diventa "sostituito".

+0

La cosa è che non si sta verificando l'eliminazione. Sto semplicemente aggiungendo \ inserendo una nuova cartella e un file nel mio ramo e quindi unendo \ tornando nel trunk. La cartella e il file non sono mai esistiti prima nel trunk o nel ramo? – user1790682