Visual Studio TFS zeigt unveränderte Dateien in der Liste der ausstehenden Änderungen an

94

Ich sehe eine Datei im Fenster mit ausstehenden Änderungen. Ich versuche es mit der neuesten Version zu vergleichen und erhalte die Meldung "Die Dateien sind identisch". Wenn die Dateien identisch sind, warum wird diese Datei im Fenster "Ausstehende Änderungen" angezeigt? Was hat sich an dieser Datei geändert? Kann ich TFS so konfigurieren, dass keine identischen Dateien aufgelistet werden?

Entwickler
quelle
Aktualisiert Ihr Antivirenprogramm möglicherweise das Datum der letzten Änderung der Dateien? Oder Sie arbeiten an einem verschlüsselten Laptop?
DOK
ScottGu erklärt in diesem Artikel (Suche nach "Virus"), wie Antivirus diese Daten ändern kann. Weblogs.asp.net/scottgu/archive/2006/09/22/…
DOK
58
Dies muss eines der nervigsten TFS "Features" sein
Brad Thomas
Ich habe auch dieses Problem - TF funktioniert, TFPT jedoch nicht - ich glaube, es liegt daran, dass ich "TFPT - Team Foundation Power Tools 2012" mit dem Visual Studio 2010-Arbeitsbereich verwende ...: - /
BrainSlugs83
Alles, was ich tun musste, war eine Verbindung zu derselben Sammlung in Visual Studio 2012 herzustellen.
BrainSlugs83

Antworten:

49

Dies ist normal, wenn eine Datei aufgrund einer Änderung automatisch ausgecheckt wird und wenn der Inhalt der Datei letztendlich wieder in den ursprünglichen Zustand versetzt wird. Zu diesem Zeitpunkt wird beim Vergleich die Meldung über identische Inhalte angezeigt.

Dieser Blogeintrag beschreibt eine nicht so intuitive Art, damit umzugehen. und in den Kommentaren gibt es einen noch besseren Vorschlag, wie man über die Befehlszeile mit TFS-Elektrowerkzeugen damit umgehen kann.

Ausstehende TFS-Änderungen ignorieren identische Dateien ...

Enablor
quelle
12
Ich empfehle dringend, dass Sie das tfpt uuElektrowerkzeug und nicht die hackige "No To All" -Lösung verwenden. Nur Hinzufügungen und geänderte Änderungen erhalten diese Eingabeaufforderung. Beispiel: Umbenennungen (die nur ausstehen, nicht umbenennen + bearbeiten) werden von der Benutzeroberfläche ohne Aufforderung rückgängig gemacht.
Edward Thomson
8
Für den Fall, dass der ursprüngliche Blog-Beitrag jemals verschwindet, lautet der Befehl tfpt uu /noget /r *, der vom Stamm des Zweigs ausgeführt werden muss. Wenn ich das sage, obwohl es redundante Änderungen korrekt aufnimmt und dann behauptet, sie rückgängig zu machen, sehe ich sie immer noch als in VS und im Check-In-Dialog ausgecheckt an, so dass es für mich kaputt erscheint: /
Mike Chamberlain
2
Eine andere Möglichkeit besteht darin, dass Sie das schreibgeschützte Bit einer Datei umschalten, ohne den Inhalt tatsächlich zu ändern. TFS kann manchmal ärgerlich sein.
Arviman
1
Als Referenz wird die Lösung "Nein zu allen" hier über den Link kopiert: "Eine andere Option besteht darin, alle Änderungen rückgängig zu machen und auf" Nein zu allen "zu klicken, wenn Sie aufgefordert werden, das Auschecken rückgängig zu machen. Auf diese Weise wird Visual Studio "Checkout rückgängig machen" Alle Dateien, die nicht geändert wurden, und alle geänderten Dateien bleiben ausgecheckt. Ich verwende immer diese Methode. "
PJSimon
Dieser "No To All" -Trick ist nett, hat aber einige Nachteile. Beispiel: Ich verwende mein Tool, um DB EntityFramework-Klassen zu generieren. Ich generiere sie in einem externen Verzeichnis und ziehe sie dann einfach in meine Lösung. Wenn keine Änderungen vorgenommen wurden, werden manchmal immer noch Änderungen angezeigt. Dieser "No To All" -Trick entfernt sie. Aber wenn neue Klassen hinzugefügt werden, die vorher nicht vorhanden waren, werden sie aus der Quellcodeverwaltung entfernt - ich muss sie mit der Hand wieder hinzufügen.
Ich wünsche
17

Kürzlich habe ich VS2010 auf VS 2013 aktualisiert, und dieses Problem ist noch schlimmer. Wenn Sie compare verwenden, werden identische Dateien überhaupt nicht angezeigt. Ich hasse das, weil Sie nicht herausfinden konnten, welche Dateien wirklich geändert wurden, bis Sie die Vergleichsdateien sorgfältig überprüft haben.

Schließlich finde ich eine Problemumgehung dafür:
Fügen Sie "Unveränderte Checkouts rückgängig machen" in den externen Tools hinzu:

  • Befehl: tfpt.exe
  • Argumente: uu . /noget /recursive
  • Ausgangsverzeichnis: $(SolutionDir)

Nach dem Ausführen dieses Befehls macht TFS alle redundanten Änderungen in den Dateien automatisch rückgängig.
Diese Dateien behalten jedoch weiterhin den Status des Auscheckens bei. Tatsächlich sind sie bereits rückgängig gemacht und entsprechen der neuesten Version. Ich denke, es ist ein Fehler in TFS. Sie müssen nur auf das Symbol Aktualisieren in der Symbolleiste unter dem Lösungs-Explorer klicken. Diese Dateien werden aktualisiert und zeigen den korrekten Status an!

zmaggie
quelle
2
Ich habe "tfpt uu. / Noget / recursive" ausgeführt und es wird behauptet, dass keine redundanten ausstehenden Änderungen im Arbeitsbereich vorhanden sind. VS2015, TFPT 2015. Alle meine Änderungen sind leere [Zusammenführen] Änderungen.
Fastmultiplication
Ich hatte es ohne Erfolg versucht. Das Entfernen des Argumentpunkts scheint dazu zu führen, dass es richtig funktioniert: uu / noget / recursive
dperez
10

Um die obige Erklärung klarer zu machen:

  1. Installieren Sie TFS Power Tools mit dem NuGet-Paketmanager in VS.
  2. Öffnen Sie die Visual Studio-Eingabeaufforderung (auch als Developer-Eingabeaufforderung für VS 2013/2015 bezeichnet) unter Windows Start.
  3. Navigieren Sie über die Eingabeaufforderung zum Stammverzeichnis Ihres lokalen Arbeitsbereichs.
  4. Führen Sie diesen Befehl aus: tfpt uu. / rekursiv / noget
  5. Deaktivieren Sie redundante Änderungen, wenn Sie dazu aufgefordert werden.

Hat für mich gearbeitet.

Des Weiteren:

Manchmal habe ich festgestellt, dass ich den Befehl an der Eingabeaufforderung der Entwickler-Eingabeaufforderung ausführen muss (und einen Fehler "Arbeitsbereich nicht gefunden" erhalten muss), bevor ich zum Arbeitsbereichsordner navigiere und dort ausgeführt werde. Wenn ich direkt zum richtigen Ordner gehe, wird der Befehl nicht gefunden. (Ich hätte nichts dagegen, eine Lösung für dieses Problem an sich zu finden.)

Phil
quelle
Vielen Dank an mich vom 30. November 2015. Ich bekomme immer wieder das gleiche Problem und Ihre Antwort war perfekt. Ich habe versucht, Sie zu stimmen, habe aber eine Art "Raum-Zeit-Kontinuum" -Fehler erhalten. Etwas mit dem 30. November 1955 zu tun und "1,21 Gigawatt nicht gefunden".
Phil
Arbeitet leider nicht für mich. Unable to determine the workspace. Bereits versucht, den Arbeitsbereich-Cache zu aktualisieren, kein Erfolg. Nach 2 Stunden gebe ich einfach auf und checke die nicht geänderten Dateien ein, um sie loszuwerden.
C4d
@ C4u Ich habe diese möglicherweise selbst erlebt, seit ich zu VS 2015 gewechselt bin. Das Problem mit den ausgecheckten Dateien ist jedoch behoben. Ich werde sehen, was ich herausfinden kann.
Phil
1
Ich konnte die PowerTools mit NuGet nicht finden, aber ich konnte sie über eine Google-Suche "Microsoft Visual Studio Team Foundation Server 2013 - Elektrowerkzeuge"
Colin
@Versatile Wenn Sie sich Visual Studio 2017 ansehen, müssen Sie zu 'Extras'> 'Erweiterungen und Updates ...' gehen. Ich erinnere mich nicht an die Menüstruktur in 2013/15. Vielleicht muss meine Antwort korrigiert werden. Wenn Sie VS 2013/15 haben und die Menüstruktur überprüfen können, können Sie meine Antwort gerne bearbeiten. :)
Phil
1

Ich habe dies gelöst, indem ich auf die Stage AllSchaltfläche in Änderungen geklickt und sie dann aufgehoben habe Unstage All.

Es löste die unveränderte Datei, die ich in meinem ChangesAbschnitt hatte. Schön und einfach.

Tom 'Blue' Piddock
quelle
0

Visual Studio 2012 führte ein neues Konzept mit dem Namen Local Workspace ein .

Wenn der Arbeitsbereich als lokal konfiguriert ist, wird eine lokale Kopie der Originaldatei abgelegt (genau wie bei SVN / CVS).

Unveränderte Dateien werden dann automatisch vor ausstehenden Änderungen ausgeblendet.

Verwenden Sie den TFS-Quellcodeverwaltungs-Explorer, um den TFS-Arbeitsbereich zu "bearbeiten ...", und ändern Sie die Einstellung "Erweitert ..." - Position von Server zu Lokal.

Rolf Kristensen
quelle
Mein Arbeitsbereich ist lokal, aber die nicht verwalteten Dateien werden immer noch in ausstehenden Änderungen angezeigt ... Das Auschecken wird nicht automatisch rückgängig gemacht ...
Ozkan
0

Durch das Abgleichen des Arbeitsbereichs werden diese ungültigen ausstehenden Änderungen behoben:

  1. Team Explorer -> Builds
  2. Klicken Sie mit der rechten Maustaste auf den neuesten Build mit Ihren Änderungen -> "Arbeitsbereich abgleichen ..."
AnonyMouse
quelle