Làm cách nào để loại trừ một tệp cụ thể khỏi kiểm soát nguồn TFS


89

Chúng tôi có nhiều tệp cấu hình (app.DEV.config, app.TEST.config, v.v.) và sự kiện tạo trước sao chép tệp cấu hình chính xác vào app.config. Rõ ràng là các tệp cụ thể của cấu hình nằm trong quyền kiểm soát nguồn --- nhưng hiện tại thì App.Config cũng vậy, và điều đó không nên.

Làm cách nào tôi có thể đánh dấu một tệp đó là bị loại trừ khỏi kiểm soát nguồn, nhưng rõ ràng không phải từ dự án.

Tôi đang sử dụng VS 2005 và 2005 Team Explorer.



Câu trả lời:


39

Có chính sách đăng ký (Chính sách mẫu bị cấm) trong MS Power Tools cho phép bạn sàng lọc tên tệp so với biểu thức chính quy. Xem: Microsoft Team Foundation Server Power Tools

Mặc dù các chính sách đăng ký không hoàn toàn an toàn nhưng chúng là thứ gần nhất mà TFS có để thực thi các quy tắc do người dùng xác định giống như những gì bạn đang tìm kiếm.

(Và như những người khác đã nói, bạn cũng có thể che giấu một tệp hoặc thư mục, có nghĩa là nó vẫn ở trong Kiểm soát nguồn và hiển thị với mọi người khác trong nhóm, nhưng nó sẽ không được sao chép vào PC của bạn cho đến khi bạn quyết định bỏ khóa nó; hoặc bạn có thể xóa tệp, có nghĩa là nó sẽ bị xóa khỏi PC của mọi người khi họ nhận được phiên bản mới nhất - nhưng cả hai tùy chọn này đều không ngăn những tệp đó được thêm vào kiểm soát nguồn ngay từ đầu)


1
Rất tiếc, tính năng loại trừ toàn nhóm dự án mà bạn đang mô tả không tồn tại trong TFS. (trừ khi nó nằm trong bản dựng mới của năm 2010 hơn của tôi) Hộp thoại "Loại tệp kiểm soát nguồn" kiểm soát loại tệp nào không thể hợp nhất, tức là bị khóa riêng.
Richard Berg

Tôi có VSTS2005 / 2008 tại nơi làm việc, nhưng tôi đang viết bài này ở nhà, vì vậy câu trả lời của tôi là từ trí nhớ khá kém của tôi - xin lỗi! Chỉ cần nhận ra rằng những gì bạn cần là chính sách đăng ký "các mẫu bị cấm" của TFS Power Tools. Điều này cho phép bạn để phù hợp với tên tập tin bằng cách sử dụng regex và khối checkins của tên tập tin không mong muốn: msdn.microsoft.com/en-us/teamsystem/bb980963.aspx#checkin
Jason Williams

Cuộc gọi tốt, tôi đã quên về chính sách đó. Tôi sẽ chỉnh sửa bài đăng của bạn để hiển thị nó.
Richard Berg

Làm thế nào tôi có thể mở một nhánh ??? Tôi đã giấu một chi nhánh do nhầm lẫn và tôi không thể cởi áo choàng nó VS2012
rolivares

95

Thật dễ dàng trong TFS2012, tạo tệp .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.

bạn sẽ làm thế nào để thực hiện một thư mục gói bỏ qua đệ quy, nhưng bao gồm các gói / repositories.config?
Maslow

@Maslow, nếu bạn hiểu, vui lòng chỉnh sửa câu trả lời của tôi. có vẻ như là một cài đặt khá phổ biến và chúng ta nên đưa nó vào ví dụ
artfulhacker

liệu tệp .tfignore trong thư mục gốc của bộ sưu tập dự án có tự động áp dụng phân cấp ngay cả khi chúng không có thư mục đó được ánh xạ / tải xuống không?
Maslow

2
Điều này chỉ được hỗ trợ với không gian làm việc Cục bộ. msdn.microsoft.com/library/vstudio/…
Sumo

45

Chọn tệp App.config trong Giải pháp Explorer và chọn Tệp -> Kiểm soát Nguồn -> Loại trừ App.config khỏi Kiểm soát Nguồn.


1
chính xác những gì tôi cần để không lưu trữ các tệp đã rút gọn của mình.
Valamas

13
Nó làm tôi phát cáu rằng tùy chọn này không được liệt kê trong menu ngữ cảnh thông thường
Eric Herlitz

6
Tôi không có tùy chọn đó. : '- (
Jan Aagaard

2
Nó cũng không có trong Visual Studio 2013 Ultimate :(
Ytrog

4
Nó hiện diện (trong Tệp> Kiểm soát Nguồn> Nâng cao> Loại trừ App.config khỏi Kiểm soát Nguồn) trong Visual Studio Premium 2013 của tôi (Phiên bản 12.0.3023.00 Cập nhật 3).
Martin Bäckström

21

Có một tùy chọn khó tìm:

1. Chọn tệp hoặc nhiều tệp trong Solution Explorer

2. Đi tới Tệp -> Kiểm soát Nguồn -> Nâng cao

Đường dẫn để loại trừ

và nó đây

Đây là Loại trừ

Lưu ý: Nếu bạn nhấp chuột phải vào một tệp trong Giải pháp Explorer, bạn chỉ tìm thấy "các tùy chọn quan trọng nhất" chứ không phải tất cả :)


Không. Bạn phải thu gọn các thư mục và chọn từng tệp mà bạn muốn loại trừ.
Felix Keil

13

Nếu tất cả những gì bạn muốn là có một tệp trong dự án nhưng không được kiểm soát nguồn với TFS, chỉ cần vào SourceControl, xóa tệp đã nói và hoàn tác kiểm tra tệp dự án của bạn (nó sẽ cố gắng xóa tệp khỏi dự án với tư cách tốt). Sau đó, đăng ký xóa tệp bạn đang loại trừ. Trong trình khám phá giải pháp, bạn sẽ thấy rằng không có biểu tượng kiểm soát nguồn bên cạnh tệp bạn đang loại trừ. Tệp dự án sẽ liệt kê một tệp ở đó, nhưng tệp đó bây giờ sẽ không còn nằm trong quyền kiểm soát nguồn nữa.

Xin lưu ý rằng bất kỳ người nào khác bây giờ sẽ thấy tệp bị thiếu trong dự án khi họ nhận được tệp mới nhất.


7

TFS cho phép bạn che giấu ở cấp độ thư mục / tệp. Khi một cái gì đó bị che giấu, TFS sẽ không cố gắng đồng bộ hóa nó (giống như svn: ignore).

Khi thiết lập không gian làm việc của bạn, hãy che giấu mọi thứ bạn muốn TFS bỏ qua. Hướng dẫn chi tiết hơn ở đây .


nếu chỉ có cách che giấu thư mục cho tất cả không gian làm việc ... thì không thấy bất kỳ cài đặt tương đương nào trong bảo mật.
felickz

Bạn không thể che giấu ở cấp tệp; thư mục duy nhất.
dudeNumber 4

@ dudeNumber4 Tôi tin rằng tính năng này đã bị tắt trong các phiên bản TFS sau này, ngay sau khi câu trả lời ban đầu được viết. Tuy nhiên, bạn có thể thử hack này: social.msdn.microsoft.com/Forums/vstudio/en-US/…
joshua.ewer

5

Điều này đã làm việc cho tôi:

Một cách là thêm mục mới hoặc mục hiện có vào dự án (ví dụ: nhấp chuột phải vào dự án, Thêm mục hiện có hoặc kéo và thả từ Windows explorer vào trình khám phá giải pháp), để TFS xử lý (các) tệp hoặc thư mục, sau đó hoàn tác đang chờ xử lý thay đổi trên (các) mặt hàng. TFS sẽ bỏ đánh dấu chúng là có một thay đổi bổ sung đang chờ xử lý và các tệp sẽ nằm yên tĩnh trong dự án và không nằm ngoài TFS.

Nguồn: = "> Làm cách nào để loại trừ một tệp cụ thể khỏi kiểm soát nguồn TFS


2

Visual Studio 2013 (và 2012)

Tính năng này khả dụng bằng cách chọn (các) tệp và truy cập:

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

Không có loại trừ trong năm 2012.
ExpatEgghead

Tôi không nhìn thấy nó vào năm 2013 hoặc
VictorySaber

2

Câu hỏi này đã được hỏi một lúc trước nhưng nó liên quan đến cùng một loại vấn đề mà tôi đang gặp phải.

Vấn đề:

  • Chúng tôi muốn kiểm tra mã của chúng tôi.
  • Sau đó chúng tôi muốn xây dựng dự án của mình.
    • Trong quá trình xây dựng của mình, chúng tôi phụ thuộc vào Sự kiện xây dựng để di chuyển các tệp xung quanh để chúng tôi có các tệp thích hợp để quá trình xây dựng hoàn tất.
  • Khi Sự kiện xây dựng của chúng tôi cố gắng sao chép tệp, chúng tôi nhận được lỗi Truy cập bị Từ chối.

Nguyên nhân:

  • Team Foundation Server Visual Studio Plugin thay đổi thuộc tính Chỉ đọc trên tệp của chúng tôi thành S REN SÀNG THẬT khi chúng tôi kiểm tra tệp của mình.

Ví dụ về xây dựng sự kiện:

  • sao chép "$ (TargetDir) SomeFile.ext" "$ (ProjectDir)"

Ở trên, chúng ta chỉ cần di chuyển một tệp từ Target Build Path (thư mục bin \ debug hoặc bin \ release) vào Thư mục Dự án của chúng ta. Trong tình huống của tôi, điều này là vì vậy tôi có thể bao gồm các tệp được xây dựng dự án trong trình cài đặt của mình. Trình cài đặt của tôi không lấy chúng như một phần của Đầu ra dự án.

Cách khắc phục: (suýt đá vào mặt tôi khi tôi phát hiện ra điều này)

Sự kiện bản dựng mới:

  • do -R "$ (ProjectDir) SomeFile.ext"
  • sao chép "$ (TargetDir) SomeFile.ext" "$ (ProjectDir)"
  • Att + R "$ (ProjectDir) SomeFile.ext"

Tất cả chúng ta đang vui với Xây dựng sự kiện phải không? Ở trên mình làm đơn giản 2 việc là bỏ thuộc tính read only, bây giờ các file không read only. Sao chép tệp của tôi như tôi muốn ban đầu. Sau đó, thay thế Thuộc tính Chỉ Đọc (tôi đoán là tùy chọn) để giữ cho Visual Studio và Team Foundations luôn hài lòng.

Và vâng ... tôi vẫn đang tự đá vào mặt mình trong lần này.


0

Tôi gặp sự cố tương tự, App.config của tôi chứa dữ liệu hợp lý (ví dụ: tên người dùng) mà dữ liệu này không được đồng bộ hóa với TFS.

Bài viết Các phương pháp hay nhất để triển khai mật khẩu và dữ liệu nhạy cảm khác cho ASP.NET và Azure App Service mô tả một cách tiếp cận tốt để ngăn chặn sự cố này:

Sử dụng thuộc tính "tệp" của phần tử "appSettings" để tham chiếu tệp cấu hình không được thêm vào kiểm soát nguồn


0

Nếu bạn có phiên bản cũ hơn TFS2012 và do đó không thể tạo .tfignoretệp hoặc sử dụng File > Source Control > Advanced > Exclude …tùy chọn, bạn có thể thử cách này:

  • Tạo một bản sao của tệp đích trong Windows Explorer.
  • Hoàn tác các thay đổi đang chờ xử lý (nếu có) trên tệp đích trong Team Explorer / Visual Studio.
  • Xóa tệp đích trong Windows Explorer.
  • Di chuyển bản sao của tệp đích đến vị trí của tệp đích đã xóa và đổi tên để nó có cùng tên với tệp đích đã bị xóa.

TFS bây giờ dường như bỏ qua những thay đổi trong tệp đích. Nếu bạn cần chỉnh sửa lại tệp, đừng sử dụng Visual Studio, vì TFS sau đó sẽ đưa tệp trở lại danh sách tệp có Thay đổi đang chờ xử lý.


0

Bạn chỉ có thể chỉ cần chọn tệp từ Trình khám phá điều khiển nguồn của mình và Nhấp chuột phải vào tệp và chọn tùy chọn "Đổi tên" từ đó và bạn có thể thêm ".exclude" vào cuối tên tệp.

Và sau đó, hãy nhớ đăng ký tệp và sau đó, bạn có thể thấy rằng tệp của mình bị loại trừ khỏi Kiểm soát nguồn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.