8. 編譯出來的文件不應該加入版本控制
簡單的說,就是任何自動生成的東西都不應該放在版本庫里面。以 .NET 為例,所有“bin”,“obj”文件夾下面的東西(.dll,.pdb 等等)都不應該加入版本庫。
為什么?因為如果這么做了,你團隊的其他人會恨死你的。每次他們更新代碼都會用你的編譯輸出來替代他們的編譯輸出,會導致他們本地的很多東西不能用。另外一個原因是,你完全沒有必要把這些編譯輸出放在版本控制里面,它們只是在浪費服務器的硬盤和帶寬。
9. 別人不在乎你的個人配置
很多時候,人們沒有意識到它們正在提交它們自己的個人配置到版本庫。開發工具往往會生成一些配置文件,記錄你的文件路徑,字體設置,快捷鍵設置等等,這些東西只對你有用。以 .NET 項目為例:
10. 依賴項也需要添加到版本庫
雖然這是最后一條,但也是很重要的。如果你的代碼需要依賴第三方的類庫或者文件,你需要把這些文件也添加到版本庫。你不能認為程序在你的機器可以跑,就在別人的機器上也能跑。你團隊的其他成員也許沒有這些依賴的文件,他們更新了你的代碼以后,會導致項目無法編譯或者程序無法運行。
我今天還遇到一個這樣的問題。我拉下了很久以前的一個項目,然后出現下面的編譯錯誤:
這個項目也是我開發的,以前的工作環境總是有 NUnit 的,但是現在沒有了,所以出現了這些錯誤。
總結
這十條的每一條都很簡單,老實說都是很基礎的東西:及時,盡早的提交代碼,充分了解你提交的東西,并確認它們確實需要被提交到代碼庫,解釋你的提交,自己提交自己的代碼,不要忘記數據庫版本控制,不要忘記依賴項。但請你忘記 VSS :)