Come posso escludere un file specifico dal controllo del codice sorgente TFS


89

Abbiamo più file di configurazione (app.DEV.config, app.TEST.config, ecc.) E un evento di pre-compilazione che copia il file di configurazione corretto in app.config. Ovviamente i file specifici della configurazione sono nel controllo del codice sorgente --- ma al momento lo è anche App.Config, e non dovrebbe essere così.

Come posso contrassegnare quel file come escluso dal controllo del codice sorgente, ma ovviamente non dal progetto.

Sto usando VS 2005 e 2005 Team Explorer.



Risposte:


39

Esiste una politica di check-in (politica dei modelli proibiti) in MS Power Tools che consente di schermare i nomi dei file rispetto a un'espressione regolare. Vedere: Microsoft Team Foundation Server Power Tools

Sebbene i criteri di check-in non siano completamente infallibili, sono la cosa più vicina a TFS per far rispettare le regole definite dall'utente come quello che stai cercando.

(E come hanno detto gli altri, puoi anche nascondere un file o una cartella, il che significa che rimane nel controllo del codice sorgente ed è visibile a tutti gli altri membri del team, ma non viene copiato sul tuo PC fino a quando non decidi di sbloccarlo; o tu può eliminare il file, il che significa che viene eliminato dai PC di tutti quando viene aggiornato, ma nessuna di queste opzioni impedirà in primo luogo che tali file vengano aggiunti al controllo del codice sorgente)


1
La funzionalità di esclusione a livello di progetto del team che stai descrivendo non esiste in TFS, sfortunatamente. (a meno che non sia in una build più recente del 2010 rispetto alla mia) La finestra di dialogo "Tipi di file di controllo del codice sorgente" controlla quali tipi di file non sono unificabili, cioè bloccati esclusivamente.
Richard Berg

Ho VSTS2005 / 2008 al lavoro, ma sto scrivendo questo a casa, quindi la mia risposta è stata dalla mia memoria piuttosto scarsa - scusate! Mi sono appena reso conto che ciò di cui hai bisogno è la politica di check-in dei "modelli proibiti" di TFS Power Tools. Ciò consente di abbinare i nomi dei file utilizzando un'espressione regolare e bloccare i check-in dei nomi di file indesiderati: msdn.microsoft.com/en-us/teamsystem/bb980963.aspx#checkin
Jason Williams,

Bella chiamata, mi ero dimenticato di quella politica. Modificherò il tuo post per dargli visibilità.
Richard Berg

Come posso sbloccare un ramo ??? Ho nascosto un ramo per errore e non riesco a sbloccarlo VS2012
rolivares

95

È facile in TFS2012, creare un file .tfignore

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.

come faresti a ignorare ricorsivamente la cartella dei pacchetti, ma includere packages / repository.config?
Maslow

@ Maslow, se hai capito, sentiti libero di modificare la mia risposta. sembra un ambiente abbastanza comune e dovremmo metterlo nell'esempio
artfulhacker

un file .tfignore nella radice della raccolta del progetto si applica automaticamente alla gerarchia anche se non hanno quella cartella mappata / scaricata?
Maslow

2
Questo è supportato solo con gli spazi di lavoro locali. msdn.microsoft.com/library/vstudio/…
Sumo

45

Seleziona il file App.config in Esplora soluzioni e scegli File -> Controllo del codice sorgente -> Escludi App.config dal controllo del codice sorgente.


1
esattamente quello che mi serviva per non memorizzare i miei file minimizzati.
Valamas

13
Mi dà fastidio che questa opzione non sia elencata nel normale menu
Eric Herlitz

6
Non ho questa opzione. : '- (
Jan Aagaard

2
Non è presente neanche in Visual Studio 2013 Ultimate :(
Ytrog

4
È presente (in File> Controllo del codice sorgente> Avanzate> Escludi App.config dal controllo del codice sorgente) nel mio Visual Studio Premium 2013 (versione 12.0.3023.00 Update 3).
Martin Bäckström

21

C'è un'opzione difficile da trovare:

1. Selezionare il file o più file in Esplora soluzioni

2. Vai a File -> Controllo del codice sorgente -> Avanzate

Percorso da escludere

ed eccolo qui

Ecco l'Escludi

Ricorda: se fai clic con il pulsante destro del mouse su un file in Esplora soluzioni, troverai solo "le opzioni più importanti" non tutte :)


No. Devi decomprimere le cartelle e selezionare ogni file che desideri escludere.
Felix Keil

13

Se tutto ciò che vuoi è avere un file nel progetto ma non sotto il controllo del codice sorgente con TFS, vai in SourceControl, elimina il suddetto file e annulla il checkout del file di progetto (tenterà di rimuovere il file dal progetto come bene). Quindi controlla la tua cancellazione del file che stai escludendo. In Esplora soluzioni dovresti vedere che non è presente alcuna icona di controllo del codice sorgente accanto al file che stai escludendo. Il file di progetto dovrebbe elencare un file lì, ma quel file ora non dovrebbe più essere sotto il controllo del codice sorgente.

Tieni presente che qualsiasi altra persona vedrà ora un file mancante nel progetto quando riceverà l'ultimo.


7

TFS ti consente di mascherare a livello di cartella / file. Quando qualcosa è occultato, TFS non tenterà di sincronizzarlo (proprio come un svn: ignore).

Quando si configura il proprio spazio di lavoro, mascherare tutto ciò che si desidera che TFS ignori. Un tutorial più dettagliato è qui .


se solo ci fosse un modo per nascondere la cartella per tutti gli spazi di lavoro ... non vedere alcuna impostazione equivalente sotto sicurezza.
felickz

Non puoi mascherare a livello di file; unica cartella.
dudeNumber4

@ dudeNumber4 Credo che questa funzione sia stata disabilitata nelle versioni successive di TFS, ben dopo che la risposta iniziale è stata scritta. Potresti provare questo trucco però: social.msdn.microsoft.com/Forums/vstudio/en-US/…
joshua.ewer

5

Questo ha funzionato per me:

Un modo è aggiungere un elemento nuovo o esistente a un progetto (ad es. Fare clic con il pulsante destro del mouse sul progetto, Aggiungi elemento esistente o trascinare e rilasciare da Esplora risorse di Windows in Esplora soluzioni), lasciare che TFS elabori i file o la cartella, quindi annullare in sospeso modifiche sugli articoli. TFS li deselezionerà come con una modifica aggiunta in sospeso ei file rimarranno silenziosi nel progetto e rimarranno fuori da TFS.

Source: = "> Come posso escludere un file specifico dal controllo del codice sorgente TFS


2

Visual Studio 2013 (e 2012)

Questa funzione è disponibile selezionando i file e andando a:

File > Source Control > Advanced > Exclude ... from Source Control

Non ci sono esclusioni nel 2012.
ExpatEgghead

Non lo vedo nemmeno nel 2013
VictorySaber,

2

Questa domanda è stata posta qualche tempo fa, ma riguarda lo stesso tipo di problema che stavo avendo.

Il problema:

  • Vogliamo controllare il nostro codice.
  • Quindi vogliamo costruire il nostro progetto.
    • Durante la nostra compilazione dipendiamo dagli eventi di compilazione per spostare i file in modo da disporre dei file appropriati per il completamento del processo di compilazione.
  • Quando il nostro evento Build tenta di copiare i file, otteniamo errori di accesso negato.

La ragione:

  • Il plug-in di Team Foundation Server per Visual Studio modifica l'attributo di sola lettura sui nostri file in READONLY TRUE quando controlliamo i nostri file.

Esempio di evento di creazione:

  • copia "$ (TargetDir) SomeFile.ext" "$ (ProjectDir)"

Sopra, dobbiamo semplicemente spostare un file dal nostro percorso di build di destinazione (le cartelle bin \ debug o bin \ release) alla nostra cartella di progetto. Nella mia situazione, era così che potevo includere i file compilati del progetto nel mio programma di installazione. Il mio programma di installazione non li stava prendendo come parte dell'output del progetto.

The Fix: (mi sono quasi preso a calci in faccia quando l'ho capito)

Evento di nuova costruzione:

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

Ci stiamo divertendo tutti con Build Events, giusto? Sopra faccio semplicemente 2 cose, rimuovo l'attributo di sola lettura, ora i file non sono di sola lettura. Copia il mio file come originariamente volevo. Quindi sostituire l'attributo di sola lettura (opzionale, immagino) per mantenere felici Visual Studio e Team Foundations.

E sì ... mi sto ancora prendendo a calci in faccia su questo.


0

Ho un problema simile, il mio App.config conteneva dati sensibili (ad esempio nome utente) che questi dati non dovrebbero essere sincronizzati con TFS.

L'articolo Procedure consigliate per la distribuzione di password e altri dati sensibili in ASP.NET e nel servizio app di Azure descrive un buon approccio per prevenire questo problema:

Utilizza l'attributo "file" dell'elemento "appSettings" per fare riferimento a un file di configurazione che non viene aggiunto al controllo del codice sorgente


0

Se hai una versione precedente a TFS2012 e quindi non puoi creare un .tfignorefile o utilizzare l' File > Source Control > Advanced > Exclude …opzione, puoi provare questo:

  • Crea una copia del file di destinazione in Windows Explorer.
  • Annulla le modifiche in sospeso (se presenti) sul file di destinazione in Team Explorer / Visual Studio.
  • Elimina il file di destinazione in Esplora risorse.
  • Spostare la copia del file di destinazione nella posizione del file di destinazione eliminato e rinominarla in modo che abbia lo stesso nome del file di destinazione eliminato.

TFS ora sembra ignorare le modifiche nel file di destinazione. Se è necessario modificare nuovamente il file, non utilizzare Visual Studio, poiché TFS inserirà nuovamente il file nell'elenco dei file con Modifiche in sospeso.


0

Puoi semplicemente selezionare il file dal tuo Source Control Explorer e fare clic destro su di esso, quindi selezionare l'opzione "Rinomina" da lì, e puoi aggiungere ".exclude" alla fine del nome del file.

E poi ricordati di archiviare il file, dopodiché puoi vedere che il tuo file è escluso dal controllo del codice sorgente.

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.