2010-10-07 43 views
8

這是我的問題。我從解決方案中得到了一些特定的文件(比如說Web.config),因爲這些更改只涉及到我的機器,所以我已經更改並且永遠不會辦理登機手續。有沒有辦法在TFS中表示忽略某個文件中的更改並將其從掛起的更改窗口中刪除。當然,我可以在每次辦理登機手續時跳過此文件,但總會有一些錯誤地忘記和登記的情況。例如,AnkhSVN中有一個類似的忽略列表。忽略掛起更改中的某個文件

回答

11

{app,web}.config文件的某些部分可以委託給另一個文件。值得注意的是<connectionStrings>

在你app.configweb.config

<connectionStrings configSource="LocalConnectionStrings.config" /> 

LocalConnectionStrings.config具有(<connectionStrings>是根元素):

<connectionStrings> 
    <!-- For the application's operations. --> 
    <add name="Application" 
     connectionString="Data Source=server;Initial Catalog=database;Integrated Security=True;Network Library=dbmssocn" 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 

因此,每個顯影劑具有LocalConnectionStrings.config這是在項目,而不是在源控件設置與他們的私人設置,而{web,app}.config已共享設置。不幸的是,這隻適用於一套有限的系統定義的配置元素。

+0

這看起來像一個可接受的解決方法。謝謝。 – anthares 2010-10-08 06:55:44

1

沒有什麼值得忽略的,但最好的辦法是在簽入後,您可以使用基於Web的登錄或其他您尚未映射源代碼樹的機器,並且可以從源代碼中刪除不需要的文件樹和視覺工作室在下次修改它們時不會檢查這些文件。

您也可以將文件放入文件夾並在xml編輯器中修改您的項目文件以將您的文件包含在您的項目中,Visual Studio不會將文件添加到通過編輯項目文件的xml手動添加的源代碼控制。

+0

我已經考慮過這個變種太多,但這個文件應該是源代碼控制。沒有辦法排除它,因爲這會打破其他一些功能。 – anthares 2010-10-07 15:00:11

2

對於我們在VS 2005/2008中的工作,我們已經打開了多個結帳,並且我們從不檢查web.config。

對於嘗試做時髦的事情沒有檢查的東西的麻煩,我們從來沒有檢查它。在奇怪的情況下,其中一個文件簽入,以及它是一個快速「嘿傢伙我搞砸了」。

另一方面,您可以告訴TFS從源代碼管理中排除文件。這將需要在所有計算機上存在,因爲解決方案/項目仍然會查找該文件。

http://arcware.net/2007/04/12/how-to-exclude-files-from-tfs-source-control/

您還可以修改的.sln /項目文件。 我已經完成了測試項目的方法,我不想修復其他人的測試只是爲了運行我自己的測試項目,所以我從TFS中移除了測試項目,同時保持其他人完好無損。

+1

正如我所說的「嘿傢伙我搞砸了」不適合我(準確地說 - 我現在這樣做,但我尋找更方便的方式)。從源代碼控制中排除文件也不是一種選擇。 – anthares 2010-10-07 15:12:12

+0

鏈接死亡。不在archive.org中。痛苦地說,[作者說](http://arcware.net/reboot/),「*這可能會讓一些人感到驚訝,但是我之前的所有內容都沒有了。我之前寫的所有內容,2004年至2014年的整個十年,不再可用,沒有帖子,沒有評論,什麼都沒有。*「誰說網絡上的公共內容不會死? ; ^) – ruffin 2015-09-21 15:14:23

1

您正在使用哪個版本的工作室?

如果你在2010年,那麼你可以使用web config轉換。這樣你就可以擁有不同的web.config文件,具體取決於環境。例如,開發,測試,生產..

如果你在2008年,我們通常有一個主web.config文件指向我們的開發東西和指向生產的web.production.config文件。在部署期間,我們刪除web.config並重命名web.production.config。

+0

我正在使用2010,但更改是機器特定的,而不是特定於環境的。例如,對於dev環境,dev的web.config對於我的每個同事都是不同的。 – anthares 2010-10-07 15:15:11

+1

@anthares:我猜你們每個人都在運行你自己的本地sql服務器?你可以建立在轉換思路上,併爲每個開發人員添加一個配置。或者,也可以使用相同的設置。就個人而言,在處理這兩種類型的環境中的問題時,我更喜歡使用一種通用的SQL服務器方法......似乎沒什麼麻煩。 – NotMe 2010-10-07 15:44:13

4

最佳實踐有關的配置文件,TFS和不同的開發機是(下襬下襬)...

你的所有開發人員都應該有相同的開發環境。這是一個在TFS管理web.config文件中的唯一方法,它有很多額外的好處:

  • 曲子「但它在我的電腦上運行」

  • 其朋友可怕的「我不不瞭解需要什麼依賴關係,它不再編譯。「你不會後悔着名的「啊!我忘了告訴你,我發明了一個MyWonderfullApplicationConfigSection,你應該在你的web.config中定義它,但我不會告訴你如何。「

  • 這將真正幫助建立一個構建環境或部署。

好吧,這不是很容易的,我知道,不同的開發人員喜歡不同的設置...但它是一個很好的主意規範開發平臺,這是很值得

+0

-1糟糕的主意。如果你有一個使用Web配置來確定WSDL終點的多層體系結構?那麼錯誤電子郵件呢?那麼開發人員不喜歡批量編譯?在許多情況下標準化dev web配置是不可行的。 – 2011-08-18 21:16:58

+1

我說過這並不總是很容易實現。但是,你應該注意到,如果你有一個標準化的開發平臺,wsdl端點不再是一個問題(這些都變得標準化了)如果它們不是......你將會遇到問題。我沒有看到開發者平臺上的錯誤電子郵件點。僅在生產中打開它們。如果不同的開發人員需要不同的編譯配置,那就沒問題了:編譯配置完全爲此而存在。但是請注意其他開發人員對依賴關係的未被注意的更改。 – Eilistraee 2011-08-21 11:19:41

+0

儘管我們可以爭論所有這些問題,但他們不會以任何方式回答相關問題。標準化Web開發平臺有很多好處。它可以使用一個普通的定期更新VHD – Eilistraee 2011-08-21 11:22:25

6

一個解決辦法可能是取消對在Windows資源管理器web.config中的只讀屬性,然後在記事本編輯:。

  • 它不會出現在待定 改變
  • 它仍然在源 控制

醜陋的,但簡單的解決方案。

+0

如果您在Tools | Tools中選擇Allow Editing ...選項,則可以在VS中進行編輯而無需簽出。選項|一般|文檔。 – Richard 2010-10-07 16:05:26

+0

+1我最終這樣做。效果很好。 – 2011-08-22 21:18:51

+1

請注意,此技巧不適用於TFS 2012+中的「本地工作區」。 – 2013-02-11 15:11:39

2

您可以製作不想簽入的文件的副本,取消簽出並將其替換爲副本。由於更改是從VS外部進行的,因此它不會被檢出,因此它不會處於Pending Changes列表中。

(我知道這是一個老問題,但我敢肯定有人在尋找一種方式來做到這一點可以使用這個答案)