2011-08-25 22 views
9

Stiamo eseguendo alcuni importanti refactoring e nel frattempo stiamo spostando molti file. Usiamo ReSharper che rende questo (relativamente) indolore quando aggiorna tutti gli usi ovunque quando spostiamo i file - anche in un progetto diverso. Quindi tutto è fantastico.Controllo versione TFS - File cancellato, aggiunto - come si dice a TFS che è stata una mossa?

Tranne che abbiamo appena scoperto che ReSharper dovrebbe dire a TFS di eliminare il file nella vecchia posizione e quindi inserirlo come nuovo file nella nuova posizione. Come possiamo dire a TFS che questa cancellazione/inserimento è stata effettivamente una mossa?

+0

Il resharper 9 è fuori ... quali sono le possibilità che questo bug sia corretto? – felickz

risposta

4

Risposta breve: Non è così.

Risposta lunga: A meno che non si desideri eseguire la possibilità di interrompere completamente il controllo del codice sorgente.

Dal punto di vista di TFS, il file nella nuova posizione è un file completamente diverso. Ha anche un ID diverso nel server del database.

Ora si potrebbe certamente speleggiare nel database TFS e provare ad aggiornare manualmente le associazioni di ID file. Ma questo ha un'alta probabilità di rovinarti completamente ... a meno che tu non fossi uno dei principali sviluppatori di TFS che era intimamente familiare con il backend del prodotto. Nel qual caso non faresti questa domanda. ;)

Articolo leggermente off-topic: è necessario contattare jetbrains e dire loro di risolvere questo problema.

+2

{imprecazione parola imprecisa} - questo non va bene.Se avessimo saputo cosa stava facendo ReSharper, avremmo potuto usarlo per causare tutte le modifiche, quindi copiare i file altrove, annullare la cassa, spostare i file, estrarli, quindi ricopiarli. Ma lo abbiamo imparato dopo. –

+0

@David Thielen: Puoi sempre solo eseguire il rollback e ricominciare da capo ... – NotMe

+0

Sì, stiamo pensando di farlo. –

4

"tf rinomina" indicherà a TFS che il file è stato spostato.

http://msdn.microsoft.com/en-us/library/a79bz90w.aspx

Se siete in VS e sposta un file da una cartella all'altra, si può vedere TFS pends una ridenominazione. È inoltre possibile spostare un file da una cartella a un'altra e quindi rinominare il file. TFS pende un rinominare.

Apparentemente quando il programma di ricerca sta spostando i file attorno ad esso non sta usando lo spostamento e rinomina l'apis nel sistema di progetto VS, o mi aspetterei che questo funzioni "solo lavoro".

+1

Sposta un file tra * progetti * in VS. In realtà fa un delete/add non una mossa. Pertanto, immagino che questo sia in realtà un bug VS. –

4

Ho affrontato una situazione simile in cui volevo spostare file tra i progetti e volevo che Resharper facesse più lavoro possibile. Ecco i passaggi che ho finito per fare:

  1. Spostare il file in Resharper. Ciò apporterà la modifica appropriata al file di progetto di destinazione.
  2. Chiudere la soluzione o disabilitare Resharper.
  3. Annulla l'eliminazione/aggiunta in TFS.
  4. Sposta il file in TFS.
  5. Assicurarsi che il file spostato non si trovi più nel progetto di origine.
  6. Ricaricare la soluzione o riattivare Resharper.
  7. Utilizzare il programma di richiamo per apportare modifiche a qualsiasi spazio dei nomi.

Ovviamente si può farlo con più di un file alla volta. È un dolore, ma TFS finisce con il cambiamento giusto e Resharper si occupa di cambiare i riferimenti.

Problemi correlati