2009-09-02 855 views
84

我們有多個配置文件(app.DEV.config,app.TEST.config等)和一個預生成事件,它將正確的配置文件複製到app.config 。很明顯,配置特定的文件在源代碼管理中 - 但目前App.Config也是如此,而這不應該是。如何從TFS源代碼控制中排除特定文件

如何將一個文件標記爲從源代碼管理中排除,但顯然不是來自項目。

我正在使用VS 2005和2005團隊資源管理器。

+0

http://stackoverflow.com/q/9741975/147211 – KMoraz 2012-03-16 19:04:10

+1

可能重複[如何忽略tfs中的文件/目錄?](http://stackoverflow.com/questions/922798/how-to-ignore- files-directories-in-tfs) – JohnC 2015-05-07 18:55:08

回答

38

MS Power Tools中有一個簽入策略(禁止模式策略),它允許您使用正則表達式來屏蔽文件名。請參閱:Microsoft Team Foundation Server Power Tools

雖然簽入策略並非完全萬無一失,但它們是TFS最爲強大的用戶定義規則,例如您正在尋找的內容。 (正如其他人所說的,你也可以隱藏一個文件或文件夾,這意味着它保持在源代碼管理中,並且對團隊中的其他人都是可見的,但是它不會複製到你的PC,直到你決定解開它;或者你可以刪除這個文件,這意味着當它們得到最新時它會從每個人的PC中刪除 - 但是這些選項都不會阻止這些文件被添加到源代碼管理中)

+1

不幸的是,您所描述的團隊項目範圍排除功能在TFS中不存在。 (除非它的版本比2010年更新)「源代碼控制文件類型」對話框控制哪些文件類型是不可合併的,即獨佔鎖定。 – 2009-09-02 21:11:19

+0

我有VSTS2005/2008在工作,但我在家寫這個,所以我的回答是從我相當糟糕的記憶 - 對不起!剛剛意識到,你需要的是TFS電動工具「禁止模式」檢查政策。這使您可以使用正則表達式匹配文件名並阻止不需要的文件名檢查:http://msdn.microsoft.com/en-us/teamsystem/bb980963。aspx#checkin – 2009-09-02 21:43:09

+0

好的電話,我忘記了這個政策。我將編輯您的帖子以提供可見性。 – 2009-09-03 04:03:04

7

TFS允許你隱藏在文件夾/文件級別。當隱藏某些東西時,TFS不會嘗試同步它(很像svn:ignore)。

設置您的工作區時,隱藏您希望TFS忽略的任何內容。更詳細的操作方法是here

+0

如果只有一種方法可以隱藏所有工作空間的文件夾...在安全性下看不到任何等效設置。 – felickz 2013-03-26 14:28:17

+0

你不能在文件級隱藏;只有文件夾。 – dudeNumber4 2014-05-12 15:00:37

+0

@ dudeNumber4我相信這個功能在後來的TFS版本中被禁用,在寫完初始答案之後。你可以嘗試這個黑客,但:http://social.msdn.microsoft.com/Forums/vstudio/en-US/aef6aeba-9cc5-4be5-9a5e-af084eead4b5/is-it-possible-to-cloak-individual-files -in-tfs-2010?forum = tfsgeneral – 2014-05-15 20:43:13

12

如果你想要的只是在項目中有一個文件,但沒有在使用TFS的源代碼控制下,只需進入SourceControl,刪除所述文件並撤消項目文件的簽出(它將嘗試刪除文件來自該項目)。然後檢入您刪除的文件。在解決方案資源管理器中,您應該看到您排除的文件旁邊沒有源代碼管理圖標。項目文件應該在那裏列出一個文件,但該文件現在應該不再受源代碼控制。

請記住,任何其他人現在都會在最新的項目中看到項目中丟失的文件。

38

選擇App.config文件在解決方案資源管理器中,然後選擇文件 - >源代碼管理 - >從源代碼管理中排除App.config。

+0

正是我需要不存儲我的縮小文件。 – 2011-08-10 22:48:32

+10

它讓我感到困惑,這個選項沒有在普通的上下文菜單中列出 – 2012-04-25 10:50:10

+4

我沒有這個選項。 :' - ( – 2013-06-20 07:42:48

4

這爲我工作:

一種方法是一個新的或現有的項目添加到項目(例如,右擊項目,添加現有項目,或將Windows資源管理器拖放到解決方案資源管理器),讓TFS處理文件或文件夾,然後撤消對項目的未決更改。 TFS會將它們取消標記爲有未決的添加更改,並且這些文件將安靜地放置在項目中並且不在TFS中。

來源: =「>如何從TFS源代碼控制排除特定的文件

92

這很容易在TFS2012,創建一個。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. 
+0

你將如何做一個遞歸忽略包文件夾,但包括packages/repositories.config? – Maslow 2014-02-05 18:31:05

+0

@Maslow,如果你有它,請隨時編輯我的答案。看起來像是一個非常常見的設置,我們應該將它放在示例中 – artfulhacker 2014-02-07 19:20:36

+0

在項目集合的根目錄下執行.tfignore文件時,是否會自動應用層次結構,即使它們沒有映射/下載該文件夾? – Maslow 2014-04-20 18:03:02

2

的Visual Studio 2013(和2012年)

此功能可通過選擇文件(S)和打算:

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

2012年沒有排除。 – ExpatEgghead 2014-03-02 11:24:23

+0

我在2013年沒有看到它 – VictorySaber 2015-10-20 15:44:01

2

這問題剛纔被問到,但它與我遇到的同類問題有關。

問題:

  • 我們希望在我們的代碼檢查。
  • 然後我們要建立我們的項目。
    • 在我們的構建過程中,我們依賴於構建事件來移動文件,所以我們有適當的文件來完成構建過程。
  • 當我們的生成事件嘗試複製文件時,我們得到訪問被拒絕錯誤。

的原因:

  • Team Foundation Server中的Visual Studio插件改變只讀在我們的文件屬性爲只讀TRUE,當我們在我們的文件進行檢查。

生成事件舉例:

  • 複製 「$(TARGETDIR)SomeFile.ext」 「$(PROJECTDIR)」

以上,我們只需要簡單地從我們的目標移動文件構建路徑(bin \ debug或bin \ release文件夾)到我們的項目文件夾。在我的情況下,這是我可以在我的安裝程序中包含項目構建文件。我的安裝程序不會將它們作爲項目輸出的一部分來抓取它們。

解決方法:(幾乎踢我的臉自當我想通了這一點)

新構建事件:

  • ATTRIB -R 「$(PROJECTDIR)SomeFile.ext」
  • 複製 「$(TARGETDIR)SomeFile.ext」 「$(PROJECTDIR)」
  • ATTRIB + R 「$(PROJECTDIR)SomeFile.ext」

我們全都有生成事件的樂趣對嗎?上面我只做了兩件事,我刪除了只讀屬性,現在這些文件不是隻讀的。按照我最初的想法複製我的文件。然後替換隻讀屬性(可選,我猜),以保持Visual Studio和Team Foundations的快樂。

是的......我仍然在自己的臉上踢這個。

18

還有就是很難找到一個選項:

1.在解決方案中的文件或多個文件資源管理器

2.轉到文件 - >源代碼管理 - >高級

Path To Exclude

這裏是

Here is the Exclude

請記住: 如果你右擊在解決方案資源管理文件,你只能找到「最重要的選項」並不是所有的:)

+0

這是否適用於文件夾?和遞歸? – Johannes 2014-11-06 15:39:34

+0

不需要。您必須拆開文件夾並選擇要排除的每個文件。 – 2014-11-18 07:27:14

0

如果你比TFS2012舊版本,因此無法創建.tfignore文件或使用File > Source Control > Advanced > Exclude …選項,你可以試試這個:

  • 使目標文件的副本在Windows資源管理器。
  • 撤銷掛起對Team Explorer/Visual Studio中的目標文件進行更改(如果有)。
  • 在Windows資源管理器中刪除目標文件。
  • 將目標文件的副本移動到已刪除目標文件的位置,並將其重命名爲與已刪除目標文件具有相同名稱。

TFS現在似乎忽略了目標文件中的更改。如果您需要再次編輯該文件,請不要使用Visual Studio,因爲TFS會將該文件重新放入包含待定更改的文件列表中。

相關問題