Bagaimana cara mengecualikan file tertentu dari kontrol sumber TFS

89

Kami memiliki beberapa file konfigurasi (app.DEV.config, app.TEST.config, dll) dan acara pra-bangun yang menyalin file konfigurasi yang benar ke app.config. Jelas file konfigurasi tertentu berada dalam kontrol sumber --- tetapi saat ini begitu juga App.Config, dan itu tidak seharusnya.

Bagaimana cara menandai satu file itu sebagai dikecualikan dari kontrol sumber, tetapi jelas bukan dari proyek.

Saya menggunakan VS 2005, dan 2005 Team Explorer.

Ralph Shillington
sumber

Jawaban:

39

Ada kebijakan check in (Kebijakan Pola Terlarang) di MS Power Tools yang memungkinkan Anda menyaring nama file dengan ekspresi reguler. Lihat: Alat Daya Server Microsoft Team Foundation

Meskipun kebijakan check in tidak sepenuhnya mudah, ini adalah hal terdekat yang dimiliki TFS untuk menegakkan aturan yang ditentukan pengguna seperti yang Anda cari.

(Dan seperti yang dikatakan orang lain, Anda juga dapat menyelubungi file atau folder, yang berarti file atau folder tetap berada di Kontrol Sumber dan dapat dilihat oleh semua orang di tim, tetapi tidak disalin ke PC Anda sampai Anda memutuskan untuk membuka selubungnya; atau Anda dapat menghapus file, yang berarti file tersebut dihapus dari PC semua orang ketika mereka mendapatkan yang terbaru - tetapi tidak satu pun dari opsi ini yang akan mencegah file tersebut ditambahkan ke kontrol sumber di tempat pertama)

Jason Williams
sumber
1
Sayangnya, fitur pengecualian seluruh proyek tim yang Anda jelaskan tidak ada di TFS. (kecuali itu dalam build yang lebih baru pada tahun 2010 daripada milik saya) Dialog "Jenis File Kontrol Sumber" mengontrol jenis file mana yang tidak dapat digabungkan, yaitu dikunci secara eksklusif.
Richard Berg
Saya memiliki VSTS2005 / 2008 di tempat kerja, tetapi saya menulis ini di rumah, jadi jawaban saya berasal dari ingatan saya yang agak buruk - maaf! Baru menyadari bahwa yang Anda butuhkan adalah kebijakan pemeriksaan "pola terlarang" TFS Power Tools. Ini memungkinkan Anda untuk mencocokkan nama file menggunakan regex dan memblokir check in dari nama file yang tidak diinginkan: msdn.microsoft.com/en-us/teamsystem/bb980963.aspx#checkin
Jason Williams
Good call, I'd forgotten about that policy. I'll edit your post to give it visibility.
Richard Berg
How can I uncloak one branch ??? I have hidden a branch by mistake and I can't uncloak it VS2012
rolivares
95

It's easy in TFS2012, create a .tfignore file

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.
artfulhacker
sumber
bagaimana Anda melakukan folder abaikan paket secara rekursif, tetapi menyertakan paket / repositories.config?
Maslow
@Maslow, jika Anda mengerti, silakan edit jawaban saya. Sepertinya pengaturan yang cukup umum dan kita harus memasukkannya ke dalam contoh
artfulhacker
apakah file .tfignore di root kumpulan proyek secara otomatis diterapkan ke hierarki meskipun mereka tidak memiliki folder yang dipetakan / diunduh?
Maslow
2
Ini hanya didukung dengan ruang kerja Lokal. msdn.microsoft.com/library/vstudio/…
Sumo
45

Pilih file App.config di Solution Explorer, dan pilih File -> Source Control -> Exclude App.config dari Source Control.

PjL
sumber
1
persis apa yang saya butuhkan untuk tidak menyimpan file saya yang diperkecil.
Valamas
13
Saya merasa
terganggu
6
Saya tidak punya pilihan itu. : '- (
Jan Aagaard
2
Itu juga tidak ada di Visual Studio 2013 Ultimate :(
Ytrog
4
Itu ada (di bawah File> Kontrol Sumber> Tingkat Lanjut> Kecualikan App.config dari Kontrol Sumber) di Visual Studio Premium 2013 saya (Versi 12.0.3023.00 Pembaruan 3).
Martin Bäckström
22

Ada opsi yang sulit ditemukan:

1. Pilih file atau beberapa file di Solution Explorer

2. Buka File -> Kontrol Sumber -> Lanjutan

Path To Exclude

dan ini dia

Berikut adalah Exclude

Perlu diingat: Jika Anda mengklik kanan file di Solution Explorer, Anda hanya menemukan "opsi paling penting", tidak semua :)

Felix Keil
sumber
13

Jika semua yang Anda inginkan adalah memiliki file dalam proyek tetapi tidak di bawah kendali sumber dengan TFS, cukup masuk ke SourceControl, hapus file tersebut, dan batalkan pembayaran Anda dari file proyek (itu akan mencoba untuk menghapus file dari proyek sebagai baik). Kemudian check-in Anda menghapus file yang Anda kecualikan. Di penjelajah solusi, Anda akan melihat bahwa tidak ada ikon kontrol sumber di samping file yang Anda kecualikan. File proyek harus mencantumkan file di sana, tetapi file itu sekarang tidak lagi berada di bawah kendali sumber.

Perlu diingat, orang lain sekarang akan melihat file yang hilang dalam proyek saat mereka mendapatkan yang terbaru.

Seth
sumber
7

TFS memungkinkan Anda untuk menyelubungi di tingkat folder / file. Ketika ada sesuatu yang terselubung, TFS tidak akan berusaha untuk menyinkronkannya (seperti svn: ignore).

Saat menyiapkan ruang kerja Anda, tutupi apa pun yang ingin Anda abaikan oleh TFS. Petunjuk yang lebih detail ada di sini .

joshua.ewer
sumber
jika hanya ada cara untuk menyelubungi folder untuk semua ruang kerja ... tidak melihat pengaturan yang setara di bawah keamanan.
felickz
Anda tidak dapat melakukan cloak pada level file; hanya folder.
dudeNumber4
@ dudeNumber4 Saya yakin fitur ini dinonaktifkan di versi TFS yang lebih baru, baik setelah jawaban awal ditulis. Anda dapat mencoba peretasan ini: social.msdn.microsoft.com/Forums/vstudio/en-US/…
joshua.ewer
5

Ini berhasil untuk saya:

Salah satu caranya adalah dengan menambahkan item baru atau yang sudah ada ke proyek (misalnya, klik kanan pada proyek, Tambahkan Item yang Ada atau seret dan lepas dari Windows explorer ke dalam explorer solusi), biarkan TFS memproses file atau folder, lalu batalkan tertunda perubahan pada item (s). TFS akan menghapus tanda mereka sebagai memiliki perubahan tambahan yang tertunda, dan file akan duduk diam di proyek dan tidak masuk ke TFS.

Sumber: = "> Bagaimana cara mengecualikan file tertentu dari kontrol sumber TFS

Huilaaja
sumber
2

Visual Studio 2013 (dan 2012)

Fitur ini tersedia dengan memilih file dan pergi ke:

File > Source Control > Advanced > Exclude ... from Source Control
Evan Mulawski
sumber
Tidak ada pengecualian pada tahun 2012.
ExpatEgghead
Saya juga tidak melihatnya di 2013
VictorySaber
2

Pertanyaan ini telah diajukan beberapa waktu yang lalu tetapi ini berkaitan dengan jenis masalah yang sama yang saya alami.

Masalah:

  • Kami ingin memeriksa kode kami.
  • Kami kemudian ingin membangun proyek kami.
    • Selama pembuatan, kami bergantung pada Acara Build untuk memindahkan file sehingga kami memiliki file yang tepat untuk menyelesaikan proses pembangunan.
  • Saat Build Event kami mencoba menyalin file, kami mendapatkan error Access Denied.

Alasannya:

  • Plugin Team Foundation Server Visual Studio mengubah atribut Read Only pada file kami menjadi READONLY TRUE ketika kami memeriksa file kami.

Contoh Build Event:

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

Di atas, kita hanya perlu memindahkan file dari Target Build Path kita (folder bin \ debug atau bin \ release) ke Folder Proyek kita. Dalam situasi saya, ini agar saya dapat menyertakan file yang dibangun proyek di penginstal saya. Pemasang saya tidak mengambilnya sebagai bagian dari Output Proyek.

The Fix: (hampir menendang wajah saya ketika saya menemukan ini)

Acara Build Baru:

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

Kita semua bersenang-senang dengan Build Events, bukan? Di atas saya hanya melakukan 2 hal, saya menghapus atribut hanya baca, sekarang file tidak hanya baca. Salin file saya seperti yang saya inginkan. Kemudian ganti Atribut Hanya Baca (opsional saya kira) untuk menjaga Visual Studio dan Yayasan Tim senang.

Dan ya ... Aku masih menyalahkan diriku sendiri untuk yang satu ini.

Rob K.
sumber
0

Saya memiliki masalah serupa, App.config saya berisi data yang masuk akal (misalnya nama pengguna) sehingga data ini tidak boleh disinkronkan dengan TFS.

Artikel Praktik terbaik untuk menyebarkan kata sandi dan data sensitif lainnya ke ASP.NET dan Layanan Aplikasi Azure menjelaskan pendekatan yang baik untuk mencegah masalah ini:

Gunakan atribut "file" dari elemen "appSettings" untuk mereferensikan file konfigurasi yang tidak ditambahkan ke kontrol sumber

thuld
sumber
0

Jika Anda memiliki versi yang lebih lama dari TFS2012 dan karenanya tidak dapat membuat .tfignorefile atau menggunakan File > Source Control > Advanced > Exclude …opsi, Anda dapat mencoba ini:

  • Buat salinan file target di Windows Explorer.
  • Batalkan Perubahan Tertunda (jika ada) pada file target di Team Explorer / Visual Studio.
  • Hapus file target di Windows Explorer.
  • Pindahkan salinan file target ke lokasi file target yang dihapus, dan ganti namanya sehingga memiliki nama yang sama dengan file target yang dihapus.

TFS sekarang sepertinya mengabaikan perubahan pada file target. Jika Anda perlu mengedit file lagi, jangan gunakan Visual Studio, karena TFS akan mengembalikan file ke daftar file dengan Perubahan Tertunda.

Pelindung satu
sumber
0

Anda cukup memilih file dari Source Control Explorer dan Klik Kanan di atasnya, lalu pilih opsi "Ubah nama" dari sana, dan Anda dapat menambahkan ".exclude" di akhir nama file.

Dan kemudian jangan lupa untuk check-in file tersebut, dan setelah itu Anda dapat melihat bahwa file Anda dikecualikan dari Kontrol Sumber.

imsummysingh.dll
sumber