2015-10-05 49 views
9

我無法說服我的組織中的其他人以停止在結帳時不加區分地鎖定文件。任何想法,我可以找到一個「官方」文件,解釋爲什麼應該謹慎使用結賬鎖? Microsoft建議:TFS結帳鎖定最佳實踐

最佳做法是,使用鎖類型選項謹慎和 爲什麼要鎖定一個項目通知你的隊友,當你打算 解除鎖定。

但沒有涉及任何細節。

任何我能指出的東西都會很有幫助。

+1

我認爲這取決於您的語言/平臺,無論您是否鎖定文件,在我的組織中,我們都使用TFS和Microsoft Access,這幾乎不可能成功合併文件,所以我們只是鎖定文件以防止其他更改在我們做出改變時發生。 – Siada

回答

8

雖然我沒有官方的微軟源代碼,但我是應用程序生命週期管理中的MVP,所以希望這足以讓這個引人注目。 :)

簽出時鎖定文本文件(即代碼)可能是生產力的嚴重障礙。我曾經在一個同事不在的時候看到過自己,他們對文件有獨佔鎖。突然之間,這是一個蠢蠢欲動的時間。當您嘗試排除故障或修復時間緊迫的問題時,情況會更糟糕。

人們想要鎖定文件進行排他編輯的最常見原因是因爲他們不想在稍後執行混亂的合併。

這通常是有症狀的一個或更多的東西:

  • 中的文件被完全鎖定過大(一個文件有很多類在它的「神級」,做了太多的事情,等)。這個問題的解決方案是根據單一責任原則將代碼重構爲更小,更孤立的類。或者,如果你絕對必須,而且你在.NET世界工作,則可以濫用關鍵字partial跨多個文件分割同一個類,儘管我想記錄下來並說明每當我看到它時代碼庫讓它流下了無限悲傷的淚水。
  • 獨佔鎖定的文件正在進行重大的長期重構。這裏的解決方案是隔離分支機構內的主要變更,頻繁地反向整合從主幹到分支的變化。
  • 進行更改的人只是不喜歡合併。我無法幫助你。如果你堅持代碼沒有提交足夠長的時間,合併會變得很痛苦,那麼你不會經常提交你的代碼。如果您沒有提交代碼,因爲它尚未完成,但是更改正在進行,您不希望干擾其他人的工作,那麼您沒有正確使用分支。

有沒有時候對代碼文件的排他鎖是好的和有用的?也許,但我不能想到它解決的問題,不能通過使用其他更合適的源代碼控制功能來解決。

如果可以,請使用本地工作區,因爲它們不會強制使用排它鎖。