最近切換的作業,並與它切換源代碼控制從TFS SVN,這對我來說是新的。VisualSVN - 禁用自動簽出
在TFS中,有一個選項可以在開始輸入文件時禁用文件的自動簽出。它在默認情況下被啓用,許多用戶喜歡這種行爲,但我更願意確定在提交之前更改了哪些內容。個人的東西。
默認爲VisualSVN自動簽出。有沒有類似的選項可以關閉它?我似乎無法找到設置。
最近切換的作業,並與它切換源代碼控制從TFS SVN,這對我來說是新的。VisualSVN - 禁用自動簽出
在TFS中,有一個選項可以在開始輸入文件時禁用文件的自動簽出。它在默認情況下被啓用,許多用戶喜歡這種行爲,但我更願意確定在提交之前更改了哪些內容。個人的東西。
默認爲VisualSVN自動簽出。有沒有類似的選項可以關閉它?我似乎無法找到設置。
據我看,SVN和TFS世界中的「自動檢出」術語具有不同的含義。
在Subversion中,簽出與svn checkout
操作相關,該操作從存儲庫獲取工作副本。在TFS中,它看起來像某種程度上與自動鎖定機制有關。
如果您希望在Visual Studio中開始修改文件(安裝有VisualSVN擴展模塊)時自動鎖定文件,請參閱知識庫文章"Lock-Modify-Unlock Model with VisualSVN"。我還建議閱讀SVNBook章節"Locking"。
一般來說,您可以在文件上設置svn:needs-lock
屬性。該屬性指示客戶端在編輯之前必須鎖定哪些文件。將svn:need-lock
應用於文件後,該文件將獲得只讀屬性。編輯之前,文件必須由用戶明確鎖定。提交後,鎖定被默認釋放。
簡短的回答:我不認爲你可以做到這一點,而不會變得非常不受歡迎。
我想你應該對SVN是如何工作的,尤其是versioning models
在你的環境中,每個人都希望能夠在本地修改任何文件,然後送他們更改服務器SVN redbook的描述讀了,必要時將變更與同事的變更合併。如果2個人始終沒有更改相同的文件,這種方法運行良好,這是大多數開發商的典型情況。
舊的TFS/VSS模型簽出一個文件來處理它現在已經過時了 - 更'樂觀'的方法,你認爲你擁有獨佔訪問的效率更高。 (像往常一樣,如果出現問題就容易請求原諒,而不是每次都要求允許)
您的主要問題是您無法混合使用這些模型 - 如果您的同事使用合併模型,那麼您也必須這樣做。您無法鎖定文件,並希望它們能夠隨時更改任何文件。
現在,有一些技巧可以用來防止自己修改你從未想過的文件 - 我不確定VisualSVN,但TortoiseSVN(真棒工具)可以運行client hooks - 也就是說你可以編寫一個程序在每一個程序上運行結帳,該程序可以像設置每個文件的只讀標誌一樣簡單。對於你來說這是不是神是另一回事。
就我個人而言,無論你喜歡什麼,我都會習慣變化的想法。如果意外編輯文件,您可以看到更改指示符(AnkhSVN將文件圖標變爲橙色以顯示更改的文件),並且可以輕鬆「還原」您不想進行的更改。另外SVN可以讓你很容易地看到差異,尤其是在提交時 - 雙擊提交對話框中的文件。無需工具即可開展工作(因爲我在嘗試編輯文件時發現TFS持續不斷地對我進行測試)所帶來的生產力收益是巨大的。SVN工具非常好,可以讓你「請求原諒」,所以你現在不需要用蹩腳的舊TFS方式運行,現在你已經升級到了更好的東西。
另一個優點是,這適用於不在一個Visual Studio項目文件,如果你有過這是VS之外編輯(例如,所生成的WCF客戶存根),那麼你會明白如何SVN項目文件作品 - 永遠不會再做一次完整的提交,並且發現TFS已經方便地決定您更改的文件沒有被更改,因此不需要承諾!
在提交前始終檢查您的更改,當您這樣做時,您可以準確查看服務器上將更改的內容。 – crashmstr
如果有幫助,您可以接受和/或提高回答。謝謝! – bahrep