Wir verwenden eine Batch-Datei zum Generieren von Code und sie checkt die generierten Dateien von Team Foundation Server (TFS) automatisch aus, damit sie neu generiert werden können. Die meisten dieser Dateien werden nicht geändert, aber der Generator weiß dies nicht im Voraus.
Der Befehl "tfs rückgängig machen" macht das Auschecken rückgängig, fordert Sie jedoch auf, wenn einige geändert wurden (was wir nicht möchten). Wir möchten die generierten Dateien auch nicht sofort einchecken.
Gibt es einen Befehl (oder eine Reihe von Befehlen), um das Auschecken aller nicht geänderten Dateien rückgängig zu machen, ohne den Benutzer dazu aufzufordern?
tfs
version-control
tfvc
Robert Wagner
quelle
quelle
ADD
Änderungen ohne Aufforderung (siehe Ray Antwort ).Antworten:
Sehen Sie sich den Befehl Unverändert rückgängig machen der Team Foundation Server Power Tools August 2011 an
Vielen Dank an Matt Florence für das Link-Update.
Vielen Dank an Ray Vega für die aktuelle Syntax .
quelle
Installieren Sie Team Foundation Server Power Tools und führen Sie Folgendes über die Befehlszeile mit tfpt.exe im Stammverzeichnis des Arbeitsbereichsverzeichnisses Ihres Projekts aus:
c:\myProject> tfpt uu . /noget /recursive
Das Einschließen
/noget
wird dringend empfohlen, da es verhindert, dass alle Dateien Ihres Projekts erzwungen werden, was abhängig von der Gesamtzahl extrem lange dauern kann.quelle
cd
, wo sich Ihr Arbeitsbereichsverzeichnis befindet (z. B. meinsc:\myProject
), oder fügen Sie es explizit nachuu
(Ersetzen des Punkts.
durch ihn) einVielen Dank an @mike & @ray,
Ich möchte es einfacher machen.
Klicken Sie in VS im Menü Extras auf "Externe Tools".
Klicken Sie auf Hinzufügen.
Titel eingeben.
Befehl: tfpt.exe
Argumente: uu. / noget / rekursiv
Erstverzeichnis: [Sie können über die Pfeilschaltfläche auswählen].
Dem Menü Extras werden zwei neue Befehle hinzugefügt.
Verwenden Sie sie bei Bedarf.
Genießen,
Ofir
quelle
Visual Studio erkennt, ob die ausgecheckte Datei Änderungen aufweist oder keine.
WARNUNG: Diese Methode entfernt auch neue Dateien, dh Dateien, die noch nicht in TFS eingecheckt sind. Wenn Sie diese Dateien behalten möchten, schließen Sie sie einfach aus dem Satz von Dateien aus, die Sie "rückgängig machen".
quelle
Be aware that this method also removes added files that are not yet checked in from TFS.
... ja, das ist ein ziemlich sofortiger Disqualifizierer.Diese Frage wurde mit einer Antwort aktualisiert, wenn nur mit TFS2017 und VS2017 / VS2019 gearbeitet wird .
Die Elektrowerkzeuge existieren für TFS 2017 nicht und die alten können nicht gut damit zusammenarbeiten, aber anscheinend wurde der größte Teil der Funktionalität auf VS2017 selbst oder Plugins verschoben (siehe unten).
Visual Studio 2017/2019 Erweiterung
Einige Aktionen wie das Rückgängigmachen unveränderter Dateien wurden in eine verschoben
Erweiterung für VS2017
Erweiterung für VS2019
Position der Schaltfläche "Unverändert rückgängig machen":
Bekannter Fehler
Sie müssen den 'Versionsverwaltungs-Explorer' öffnen (und offen lassen), damit im Menü Aktion der Ansicht Ausstehende Änderungen die Option 'Unverändert rückgängig machen' angezeigt wird. hier berichtet .
Windows Shell-Integrationserweiterung
Sie können die Windows-Shell-Integration auch weiterhin über ein separates Installationsprogramm einrichten, das nicht mehr mit TFS Power Tools verknüpft ist.
Die Windows-Shell-Integration funktioniert nicht genau so wie die vorherigen Powertools, aber die wichtigsten Aktionen haben bei mir funktioniert.
quelle
Wenn Sie einfach alle Dateien, die Sie ausgecheckt haben, wieder einchecken, ist TFS intelligent genug, um herauszufinden, welche Änderungen vorgenommen wurden, und sie nur in das auf dem Server aufgezeichnete Änderungsset aufzunehmen.
TFS vergleicht dazu MD5-Hashes des Dateiinhalts vor und nach dem Einchecken.
Dies alles setzt voraus, dass Ihr Generierungsprozess lediglich denselben Satz von Dateien aktualisiert, dh Sie werden nie den Fall haben, dass eine Datei, die in einer vorherigen Generation generiert wurde, in der nächsten Generation nicht benötigt wird (dh Sie möchten einen Löschvorgang anhängen für diese Datei) oder dass die Dateien ihren Namen ändern.
Wenn für Ihren Prozess möglicherweise Dateien gelöscht werden müssen, lesen Sie am besten den Befehl Team Foundation Power Tools ( tfpt ) und verwenden Sie den Befehl tfpt online, mit dem nur die geänderten Dateien überprüft werden und die intelligent genug sind pend löscht alle Dateien, die nicht mehr benötigt werden, oder ändert den Namen und fügt hinzu.
Viel Glück,
Martin.
quelle
Beachten Sie, dass durch das Rückgängigmachen von TFS der Wert "Änderungsdatum" des Dateisystems nicht zurückgesetzt wird. Dies ist sehr frustrierend, insbesondere wenn Sie Tools wie Robocopy verwenden, um Remotecomputer zu synchronisieren. Selbst nachdem Sie das Auschecken rückgängig gemacht haben und die Datei gespeichert und dabei den Wert "Änderungsdatum" aktualisiert haben, bleibt dieser aktualisierte Wert auch nach dem Rückgängigmachen des Auscheckens erhalten.
quelle
Es gibt einige Punkte bezüglich der uu-Option für tfpt (empfohlen in den meisten anderen Antworten), die mir zunächst nicht klar waren. Erstens ist dies die Befehlszeilenhilfe, auf die mit dem Befehl zugegriffen werden kann
tfpt uu /?
Lassen Sie mich nun den Befehl aufschlüsseln, der in den anderen Antworten empfohlen wird.
tfpt uu
Gibt an, dass der Befehl 'Unverändert rückgängig machen' verwendet werden soll..
gibt an (ich denke), dass das aktuelle Arbeitsverzeichnis als Dateispezifikation verwendet werden sollte./noget
stellt sicher, dass "Neueste Version abrufen" nicht aufgerufen wird, bevor die unveränderten Dateien rückgängig gemacht werden./recursive
stellt sicher, dass nicht nur die Dateispezifikation berücksichtigt wird, sondern alle rekursiven untergeordneten Ordner und Dateien. Dies scheint von der Dateispezifikation abhängig zu sein. Wenn keine angegeben ist, wird der gesamte Arbeitsbereich verarbeitet.In Bezug auf den Befehl von oben sind hier einige Dinge zu beachten ...
Ich habe festgestellt, dass der folgende Befehl für mich am besten funktioniert - er verarbeitet den gesamten Arbeitsbereich.
tfpt uu /noget
Beachten Sie, dass es immer noch vom Arbeitsverzeichnis abhängt, in dem tfpt verwendet, um zu bestimmen, welcher Arbeitsbereich verarbeitet werden soll. Solange Sie jedoch einen Pfad zu einer Datei oder einem Ordner im Arbeitsbereich angeben, können Sie loslegen.
quelle
Ich kann Ray LionFangs Ansatz oben sehen. Kann dort nicht kommentieren, da ich den Repräsentanten nicht habe. Ich mag diesen Ansatz zwar, da keine Änderungen an Tools usw. erforderlich sind.
....... Es gibt ein Problem mit diesem Ansatz, wenn Sie auf "Nein zu allen" klicken und einige Dateien beibehalten, die nicht geändert wurden. Es scheint so etwas wie nicht rückgängig gemachte Dateien rückgängig zu machen, bis es die erste tatsächlich geänderte Datei trifft und dann den Rest der nicht geänderten Dateien ignoriert, wenn dies Sinn macht. Ich habe diesen Effekt nur ab und zu gesehen.
Eine mögliche Problemumgehung besteht darin, den oben beschriebenen Vorgang auszuführen. Statt jedoch "Nein für alle" zu drücken, drücken Sie für jede Datei "Nein". Da dies abhängig von der Anzahl der Dateien, mit denen Sie arbeiten, eine Weile dauern kann, halte ich normalerweise "ALT + N" gedrückt und es werden nur alle Dateien beschleunigt, während ALLE unveränderten Dateien rückgängig gemacht werden.
quelle
Soweit ich verstanden habe, wird in TFS beim Auschecken eines Teamprojekts das gesamte Projekt ausgecheckt und Sie haben keine Kontrolle darüber, welche Dateien heruntergefahren werden. Wenn Sie das Einchecken in bestimmte Dateien verhindern möchten, können Sie diese sperren.
Bei der Arbeit hassen wir alle TFS.
quelle