Wie kann ich eine bestimmte Datei von der TFS-Quellcodeverwaltung ausschließen?

89

Wir haben mehrere Konfigurationsdateien (app.DEV.config, app.TEST.config usw.) und ein Pre-Build-Ereignis, das die richtige Konfigurationsdatei in app.config kopiert. Offensichtlich befinden sich die konfigurationsspezifischen Dateien in der Quellcodeverwaltung - aber im Moment ist es auch App.Config, und das sollte nicht sein.

Wie kann ich diese eine Datei als von der Quellcodeverwaltung ausgeschlossen markieren, aber offensichtlich nicht aus dem Projekt.

Ich verwende VS 2005 und 2005 Team Explorer.

Ralph Shillington
quelle

Antworten:

39

In den MS Power Tools gibt es eine Eincheckrichtlinie (Richtlinie für verbotene Muster), mit der Sie Dateinamen anhand eines regulären Ausdrucks überprüfen können. Siehe: Microsoft Team Foundation Server-Elektrowerkzeuge

Check-in-Richtlinien sind zwar nicht vollständig narrensicher, sie sind jedoch das, was TFS am nächsten kommt, um benutzerdefinierte Regeln durchzusetzen, wie Sie sie suchen.

(Und wie die anderen bereits gesagt haben, können Sie eine Datei oder einen Ordner auch tarnen. Dies bedeutet, dass sie in der Quellcodeverwaltung verbleibt und für alle anderen Mitglieder des Teams sichtbar ist. Sie wird jedoch erst auf Ihren PC kopiert, wenn Sie sich entscheiden, sie zu enttarnen kann die Datei löschen, was bedeutet, dass sie von allen PCs gelöscht wird, wenn sie auf dem neuesten Stand sind - aber keine dieser Optionen verhindert, dass solche Dateien überhaupt zur Quellcodeverwaltung hinzugefügt werden.)

Jason Williams
quelle
1
Die von Ihnen beschriebene teamprojektweite Ausschlussfunktion ist in TFS leider nicht vorhanden. (es sei denn, es handelt sich um eine neuere Version von 2010 als meine) Das Dialogfeld "Dateitypen der Quellcodeverwaltung" steuert, welche Dateitypen nicht zusammenführbar, dh ausschließlich gesperrt sind.
Richard Berg
Ich habe VSTS2005 / 2008 bei der Arbeit, schreibe dies aber zu Hause, daher war meine Antwort aus meinem eher schlechten Gedächtnis - sorry! Ich habe gerade festgestellt, dass Sie die Check-in-Richtlinie für "verbotene Muster" von TFS Power Tools benötigen. Auf diese Weise können Sie Dateinamen mithilfe eines regulären Ausdrucks abgleichen
Jason Williams
Guter Anruf, ich hatte diese Politik vergessen. Ich werde Ihren Beitrag bearbeiten, um ihn sichtbar zu machen.
Richard Berg
Wie kann ich einen Zweig entdecken ??? Ich habe versehentlich einen Zweig versteckt und kann ihn nicht entdecken. VS2012
rolivares
95

In TFS2012 ist es einfach, eine .tfignore-Datei zu erstellen

http://msdn.microsoft.com/en-us/library/tfs/ms245454%28v=vs.110%29.aspx#tfignore

######################################
# Ignore .cpp files in the ProjA sub-folder and all its subfolders
ProjA\*.cpp
# 
# Ignore .txt files in this folder 
\*.txt
#
# Ignore .xml files in this folder and all its sub-folders
*.xml
#
# Ignore all files in the Temp sub-folder
\Temp
#
# Do not ignore .dll files in this folder nor in any of its sub-folders
!*.dll

# EDIT https://msdn.microsoft.com/en-us/library/ms245454(v=vs.110).aspx#tfignore
# A filespec is recursive unless prefixed by the \ character.
kunstvoller Hacker
quelle
Wie würden Sie einen rekursiven Ordner zum Ignorieren von Paketen erstellen, aber packages / repositories.config einschließen?
Maslow
@ Maslow, wenn Sie es haben, können Sie meine Antwort bearbeiten. scheint eine ziemlich häufige Einstellung zu sein und wir sollten es in das Beispiel setzen
artfulhacker
Wird eine .tfignore-Datei im Stammverzeichnis der Projektsammlung automatisch in der Hierarchie angewendet, auch wenn dieser Ordner nicht zugeordnet / heruntergeladen wurde?
Maslow
2
Dies wird nur bei lokalen Arbeitsbereichen unterstützt. msdn.microsoft.com/library/vstudio/…
Sumo
45

Wählen Sie die Datei App.config im Projektmappen-Explorer aus und wählen Sie Datei -> Quellcodeverwaltung -> App.config von der Quellcodeverwaltung ausschließen.

PjL
quelle
1
genau das, was ich brauchte, um meine minimierten Dateien nicht zu speichern.
Valamas
13
Es nervt mich, dass diese Option nicht im normalen Kontextmenü aufgeführt ist
Eric Herlitz
6
Ich habe diese Option nicht. : '- (
Jan Aagaard
2
Es ist auch nicht in Visual Studio 2013 Ultimate vorhanden :(
Ytrog
4
Es ist in meinem Visual Studio Premium 2013 (Version 12.0.3023.00 Update 3) vorhanden (unter Datei> Quellcodeverwaltung> Erweitert> App.config von der Quellcodeverwaltung ausschließen).
Martin Bäckström
21

Es gibt eine Option, die schwer zu finden ist:

1. Wählen Sie die Datei oder mehrere Dateien im Projektmappen-Explorer aus

2. Gehen Sie zu Datei -> Quellcodeverwaltung -> Erweitert

Ausschlusspfad

und hier ist es

Hier ist der Ausschluss

Beachten Sie: Wenn Sie im Projektmappen-Explorer mit der rechten Maustaste auf eine Datei klicken, finden Sie nur "die wichtigsten Optionen", nicht alle :)

Felix Keil
quelle
Nein. Sie müssen die Ordner aufheben und jede Datei auswählen, die Sie ausschließen möchten.
Felix Keil
13

Wenn Sie lediglich eine Datei im Projekt haben möchten, die jedoch nicht mit TFS der Quellcodeverwaltung unterliegt, rufen Sie einfach SourceControl auf, löschen Sie die Datei und machen Sie das Auschecken der Projektdatei rückgängig (es wird versucht, die Datei aus dem Projekt als zu entfernen Gut). Checken Sie dann das Löschen der Datei ein, die Sie ausschließen. Im Lösungs-Explorer sollten Sie sehen, dass sich neben der Datei, die Sie ausschließen, kein Versionsverwaltungssymbol befindet. Die Projektdatei sollte dort eine Datei auflisten, aber diese Datei sollte jetzt nicht mehr unter Quellcodeverwaltung stehen.

Denken Sie daran, dass jede andere Person jetzt eine fehlende Datei im Projekt sieht, wenn sie die neuesten Informationen erhält.

Seth
quelle
7

Mit TFS können Sie sich auf Ordner- / Dateiebene tarnen. Wenn etwas getarnt ist, versucht TFS nicht, es zu synchronisieren (ähnlich wie bei einem SVN: Ignorieren).

Verschleiern Sie beim Einrichten Ihres Arbeitsbereichs alles, was TFS ignorieren soll. Eine ausführlichere Anleitung finden Sie hier .

joshua.ewer
quelle
Wenn es nur eine Möglichkeit gäbe, den Ordner für alle Arbeitsbereiche zu tarnen ... sehen Sie unter Sicherheit keine entsprechende Einstellung.
Felickz
Sie können sich nicht auf Dateiebene tarnen. einziger Ordner.
DudeNumber4
@ dudeNumber4 Ich glaube, diese Funktion wurde in späteren Versionen von TFS deaktiviert, lange nachdem die erste Antwort geschrieben wurde. Sie könnten diesen Hack aber versuchen: social.msdn.microsoft.com/Forums/vstudio/en-US/…
joshua.ewer
5

Das hat bei mir funktioniert:

Eine Möglichkeit besteht darin, einem Projekt ein neues oder vorhandenes Element hinzuzufügen (z. B. mit der rechten Maustaste auf das Projekt klicken, Vorhandenes Element hinzufügen oder aus dem Windows-Explorer in den Lösungs-Explorer ziehen und dort ablegen), TFS die Datei (en) oder den Ordner verarbeiten zu lassen und dann ausstehend rückgängig zu machen Änderungen an den Artikeln. TFS hebt die Markierung für eine ausstehende Änderung zum Hinzufügen auf, und die Dateien befinden sich ruhig im Projekt und halten sich von TFS fern.

Quelle: = "> Wie kann ich bestimmte Dateien von der TFS-Quellcodeverwaltung ausschließen?

Huilaaja
quelle
2

Visual Studio 2013 (und 2012)

Diese Funktion ist verfügbar, indem Sie die Datei (en) auswählen und zu:

File > Source Control > Advanced > Exclude ... from Source Control
Evan Mulawski
quelle
Es gibt keinen Ausschluss im Jahr 2012.
ExpatEgghead
Ich sehe es auch 2013 nicht
VictorySaber
2

Diese Frage wurde vor einiger Zeit gestellt, bezieht sich jedoch auf dieselbe Art von Problem, die ich hatte.

Das Problem:

  • Wir möchten unseren Code einchecken.
  • Wir wollen dann unser Projekt bauen.
    • Während unseres Builds sind wir auf Build-Ereignisse angewiesen, um Dateien zu verschieben, damit die richtigen Dateien für den Abschluss des Build-Prozesses vorhanden sind.
  • Wenn unser Build-Ereignis versucht, die Dateien zu kopieren, werden Fehler beim Zugriff verweigert angezeigt.

Der Grund:

  • Das Team Studio Server Visual Studio-Plugin ändert das schreibgeschützte Attribut für unsere Dateien in READONLY TRUE, wenn wir unsere Dateien einchecken.

Beispiel für ein Build-Ereignis:

  • Kopieren Sie "$ (TargetDir) SomeFile.ext" "$ (ProjectDir)"

Oben müssen wir lediglich eine Datei aus unserem Zielerstellungspfad (Ordner bin \ debug oder bin \ release) in unseren Projektordner verschieben. In meiner Situation war dies so, dass ich projektgebaute Dateien in mein Installationsprogramm aufnehmen konnte. Mein Installer hat sie nicht als Teil der Projektausgabe abgerufen.

The Fix: (hätte mir fast ins Gesicht getreten, als ich das herausgefunden habe)

Neues Build-Ereignis:

  • attrib -R "$ (ProjectDir) SomeFile.ext"
  • Kopieren Sie "$ (TargetDir) SomeFile.ext" "$ (ProjectDir)"
  • attrib + R "$ (ProjectDir) SomeFile.ext"

Wir haben alle Spaß mit Build Events, oder? Oben mache ich einfach 2 Dinge, ich entferne das schreibgeschützte Attribut, jetzt sind die Dateien nicht schreibgeschützt. Kopieren Sie meine Datei so, wie ich es ursprünglich wollte. Ersetzen Sie dann das schreibgeschützte Attribut (optional, denke ich), um Visual Studio und Team Foundations zufrieden zu stellen.

Und ja ... ich trete mir immer noch ins Gesicht.

Rob K.
quelle
0

Ich habe ein ähnliches Problem, meine App.config enthielt sinnvolle Daten (z. B. Benutzername), die diese Daten nicht mit TFS synchronisieren sollten.

Der Artikel Best Practices für die Bereitstellung von Kennwörtern und anderen vertraulichen Daten in ASP.NET und Azure App Service beschreibt einen guten Ansatz, um dieses Problem zu vermeiden:

Verwenden Sie das Attribut "file" des Elements "appSettings", um auf eine Konfigurationsdatei zu verweisen, die nicht zur Quellcodeverwaltung hinzugefügt wurde

thuld
quelle
0

Wenn Sie eine ältere Version als TFS2012 haben und daher keine .tfignoreDatei erstellen oder die File > Source Control > Advanced > Exclude …Option verwenden können, können Sie Folgendes versuchen:

  • Erstellen Sie eine Kopie der Zieldatei im Windows Explorer.
  • Machen Sie ausstehende Änderungen (falls vorhanden) an der Zieldatei in Team Explorer / Visual Studio rückgängig.
  • Löschen Sie die Zieldatei im Windows Explorer.
  • Verschieben Sie die Kopie der Zieldatei an den Speicherort der gelöschten Zieldatei und benennen Sie sie so um, dass sie denselben Namen wie die gelöschte Zieldatei hat.

TFS scheint nun die Änderungen in der Zieldatei zu ignorieren. Wenn Sie die Datei erneut bearbeiten müssen, verwenden Sie Visual Studio nicht, da TFS die Datei dann wieder in die Liste der Dateien mit ausstehenden Änderungen einfügt.

Beschützer eins
quelle
0

Sie können die Datei einfach in Ihrem Versionsverwaltungs-Explorer auswählen und mit der rechten Maustaste darauf klicken und dort die Option "Umbenennen" auswählen. Am Ende des Dateinamens können Sie ".exclude" hinzufügen.

Denken Sie dann daran, die Datei einzuchecken. Danach können Sie sehen, dass Ihre Datei von der Quellcodeverwaltung ausgeschlossen ist.

imsummysingh
quelle