2012-02-12 62 views
1

我想建立一個項目和潛在的現有項目是SVN版本控制。我爲svn服務器使用uberSVN。我爲視覺工作室安裝了AnkhSVN。正確的設置爲視覺工作室和SVN

目前,我正在使用的團隊正在使用可視化的源代碼安全,並且我們遇到的一個問題是當有人添加對DLL的引用時,它會像您期望的那樣修改項目文件,但我們的路徑在不同的團隊成員(XP盒,7,你明白了)。我想要的是在簽入/簽出時忽略項目文件,這樣我們就不會混淆其他人的參考。

有沒有辦法讓SVN忽略插件中的這些文件?其中一個副作用是一個人不知道在項目中是否添加了新文件,因爲這會修改項目文件。除了告訴大家「嘿,你需要手動添加這個文件到你的項目中,」有沒有更乾淨的方式來做到這一點?

回答

1

您應該開始使用虛擬路徑進行開發工作;這樣每個團隊成員可以在任何物理位置保留工作相關文件,但虛擬路徑(通過工具看到的文件總是相同的)

例如,我的團隊在Q:\下工作。 。是在物理路徑C:\Work\<project_name>其中PROJECT_NAME部分取決於項目時,我想在一個給定的項目工作,我映射Q:\使用

subst q: c:\work\project_name 

向右物理路徑的虛擬路徑當我需要切換,我運行了一個類似的命令,這樣就不用擔心不同計算機上的不同路徑,這對整個團隊非常有用,並且消除了你描述的大多數問題即你唯一需要確定的是每個人在處理項目相關文件時總是使用虛擬路徑(Q :),而不是物理路徑。對於我的團隊來說,大概需要一週的時間才能習慣,之後就沒有問題了。

您的項目文件是您的項目的重要組成部分,所以在源代碼管理工具中忽略它最終會導致問題。我建議你不要這樣做(即使你可以)。

編輯: 如果你有DLL-S在不同機器上的不同的物理文件夾,最好的選擇是那些DLL-S(和它們的依賴)複製到一個已知位置。只要編譯器找到它們,它們就無法從那裏運行。

這個已知位置可能位於您的虛擬路徑或一個公共物理路徑中(如果多個項目需要相同的DLL-s)。您可以使用Dependency Walker來確定對於本機DLL-s所需的依賴關係,以及對於.NET DLL-s所需的Reflector

如果DLL-s的大小/數量太大以至於不能創建副本,那麼實際上可以讓AnkhSVN在提交更改時忽略某些版本化文件。右鍵單擊該文件,選擇Subversion> Move to Change List> ignore-on-commit。之後,該文件將顯示在未選中的提交對話框中,但如果您手動選擇該文件,仍然可以提交該文件。

+0

由於我們的窗口框指向程序文件(x86),我們的XP人員指向某些DLL的程序文件,所以這不起作用。 – Justin 2012-02-12 23:30:40

+0

@Justin:我更新了我的答案 - 您可以將您的DLL-s複製到已知位置,也可以告訴AnkhSVN在提交更改時顯示某些未選中的文件。 – xxbbcc 2012-02-13 02:32:39

4

如果您在鏈接到VS解決方案文件夾之前將其複製到VS解決方案文件夾中的一個文件夾中,我認爲項目鏈接將是相對不絕對的。因此,您可以將DLL和更新的VS項目檢查到您的配置管理中,並且每個人都應該能夠共享它。

+2

我們也這樣做......效果很好。完全獨立於開發人員使用的文件夾。 – 2012-02-13 02:42:18