Visual Studio TFS mostra i file non modificati nell'elenco delle modifiche in sospeso


94

Vedo un file nella finestra delle modifiche in sospeso. Provo a confrontarlo con l'ultima versione e ricevo un messaggio "I file sono identici" Se i file sono identici, perché questo file viene visualizzato nella finestra delle modifiche in sospeso? Cosa è cambiato in questo file? Posso configurare TFS per non elencare file identici?


È possibile che il tuo antivirus aggiorni la data dell'ultima modifica dei file? O stai lavorando su un laptop crittografato?
DOK

ScottGu spiega come l'antivirus può modificare queste date in questo articolo (cerca "virus") weblogs.asp.net/scottgu/archive/2006/09/22/…
DOK

58
Questa deve essere una delle "caratteristiche" di TFS più fastidiose
Brad Thomas

Anch'io sto avendo questo problema - TF funziona, ma TFPT no - Penso sia perché sto usando "TFPT - Team Foundation Power Tools 2012" con l'area di lavoro di Visual Studio 2010 ...: - /
BrainSlugs83

Looks come tutto quello che dovevo fare era di connessione alla stessa collezione in Visual Studio 2012. Vedi questo post per maggiori dettagli: stackoverflow.com/questions/1758606/...
BrainSlugs83

Risposte:


49

Ciò è normale se un file viene estratto automaticamente a causa di una modifica e se alla fine il contenuto del file viene riportato al suo stato originale. A quel punto vedrai il messaggio su contenuti identici al confronto.

Questo post di blog descrive un modo non così intuitivo di affrontare questo problema; e nei commenti c'è un suggerimento ancora migliore su come gestirlo tramite la riga di comando tramite strumenti di potenza TFS.

TFS in attesa di modifiche ignorando file identici ...


12
Consiglio vivamente di utilizzare l' tfpt uuutensile elettrico e non la soluzione hacky "No To All". Solo le aggiunte e le modifiche modificate ottengono questo messaggio. Ad esempio: le ridenominazioni (che sono solo rinominate in sospeso, non rinominate + modificate) verranno annullate dall'interfaccia utente senza richiesta.
Edward Thomson

8
Nel caso in cui il post del blog originale scompaia, il comando è tfpt uu /noget /r *, che deve essere eseguito dalla radice del ramo. Detto questo, sebbene raccolga correttamente le modifiche ridondanti, quindi affermi di annullarle, le vedo ancora come estratte in VS e nella finestra di dialogo Archivia, quindi sembra rotto per me: /
Mike Chamberlain

2
Un'altra possibilità che ciò accada è se si attiva il bit di "sola lettura" di un file senza modificarne effettivamente il contenuto. TFS può essere fastidioso a volte.
arviman

1
Per riferimento, la soluzione "No a tutti" viene copiata qui dal collegamento: "Un'altra opzione è" Annulla estrazione "tutte le modifiche e fai clic su" No a tutti "quando viene chiesto di confermare l'annullamento dell'estrazione. In questo modo Visual Studio "Annulla estrazione" tutti i file che non sono stati modificati e tutti i file modificati rimarranno estratti. Uso sempre questo metodo. "
PJSimon

Quel trucco "No To All" è carino, ma ha alcuni inconvenienti. Ad esempio, utilizzo il mio strumento per generare classi DB EntityFramework. Li generi in una directory esterna e poi li trascino nella mia soluzione. A volte, quando non ci sono modifiche, visualizza ancora le modifiche. Questo trucco "No To All" li rimuove. Ma se sono state aggiunte nuove classi, che prima non c'erano, le rimuove dal controllo del codice sorgente - devo aggiungerle di nuovo con la mano.
Wish

17

Di recente ho appena aggiornato VS2010 a VS 2013 e questo problema è anche peggiore. Quando si utilizza il confronto, i file identici non vengono visualizzati affatto. Lo odio perché non sei riuscito a capire quali file sono stati veramente modificati finché non controlli attentamente i file di confronto.

Finalmente trovo una soluzione alternativa per questo:
Aggiungi "Annulla checkout invariati" negli strumenti esterni:

  • Comando: tfpt.exe
  • Argomenti: uu . /noget /recursive
  • Directory iniziale: $(SolutionDir)

Dopo aver eseguito questo comando, TFS annullerà automaticamente tutte le modifiche ridondanti nei file.
Ma questi file mantengono ancora lo stato di check-out, in realtà sono già annullati e sono uguali all'ultima versione. Penso che sia un bug in TFS. È sufficiente fare clic sull'icona Aggiorna nella barra degli strumenti in Esplora soluzioni, questi file verranno aggiornati e mostreranno lo stato corretto!


2
Ho eseguito "tfpt uu. / Noget / recursive" e afferma che non ci sono modifiche ridondanti in sospeso nell'area di lavoro. VS2015, TFPT 2015. Tutte le mie modifiche sono vuote [unione] modifiche.
fastmultiplication

L'avevo provato senza successo. Rimuovere il punto dell'argomento sembra farlo funzionare correttamente: uu / noget / recursive
dperez

10

Per rendere più chiara la spiegazione di cui sopra:

  1. Installa TFS Power Tools usando il gestore di pacchetti NuGet in VS.
  2. Aprire il prompt dei comandi di Visual Studio (chiamato anche prompt dei comandi per gli sviluppatori per VS 2013/2015) da Windows Start.
  3. Accedi al percorso principale dell'area di lavoro locale tramite il prompt dei comandi.
  4. Esegui questo comando: tfpt uu. / ricorsivo / noget
  5. Scegli di eliminare le modifiche ridondanti se richiesto.

Ha funzionato per me.

Ulteriore:

A volte ho scoperto di dover eseguire il comando sul prompt di apertura del prompt dei comandi per gli sviluppatori (e ottenere un errore di area di lavoro non trovata), prima di navigare nella cartella dell'area di lavoro ed eseguire lì. Se vado direttamente alla cartella corretta, il comando non viene trovato. (Non mi dispiacerebbe una soluzione a quel problema in sé.)


Grazie dal 30 novembre 2015. Continuo a ricevere lo stesso problema più e più volte e la tua risposta è stata perfetta. Ho provato a votarti, ma ho ricevuto una sorta di errore di "continuum spazio-temporale". Qualcosa a che fare con il 30 novembre 1955 e "necessari 1,21 gigawatt non trovati".
Phil

Purtroppo non funziona per me. Unable to determine the workspace. Ho già provato ad aggiornare la cache dell'area di lavoro, senza successo. Dopo 2 ore mi arrenderò e controllerò i file non modificati per eliminarli.
C4d

@ C4u Potrei aver iniziato a riscontrarlo io stesso, da quando sono passato a VS 2015. Tuttavia, il problema con i file estratti che si verificano è stato risolto. Vedrò cosa posso scoprire.
Phil

1
Non sono riuscito a trovare PowerTools utilizzando NuGet, ma sono stato in grado di trovarlo e installarlo tramite una ricerca su Google "Microsoft Visual Studio Team Foundation Server 2013 Power Tools"
Colin

@Versatile Guardando Visual Studio 2017, dovresti andare su "Strumenti"> "Estensioni e aggiornamenti ..." Non ricordo la struttura del menu nel 2013/15. Forse la mia risposta richiede una correzione. Se hai VS 2013/15 e puoi controllare la struttura del menu, sentiti libero di modificare la mia risposta. :)
Phil

1

Ho risolto il problema facendo clic sul Stage Allpulsante in Modifiche, quindi rimuovendone lo stage con Unstage All.

Ha risolto il file invariato che avevo nella mia Changessezione. Bello e semplice.


0

Visual Studio 2012 ha introdotto un nuovo concetto chiamato Area di lavoro locale .

Quando la posizione dello spazio di lavoro è configurata come locale, verrà posizionata una copia locale del file originale (proprio come SVN / CVS).

Quindi nasconderà automaticamente i file non modificati dalle modifiche in sospeso.

Utilizzare TFS Source Control Explorer per "Modifica ..." l'area di lavoro TFS e modificare l'impostazione "Avanzate ..." - Posizione da Server a Locale.


Il mio spazio di lavoro è locale, ma i file non caricati appaiono ancora nelle modifiche in sospeso ... Non annulla automaticamente il check-out ...
Ozkan

0

Per me, la riconciliazione dell'area di lavoro risolve queste modifiche in sospeso non valide:

  1. Team Explorer -> Build
  2. Fare clic con il pulsante destro del mouse sull'ultima build con le modifiche apportate -> "Riconcilia spazio di lavoro ..."
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.