SVN:?? ?subversion. Is a version control system, open source, and free.
通常有兩種使用使用模式:
?? ?Lock-modify-Unlock?? ?獨占式,代表VSS
?? ?Copy-modify-Merge?? ?并行式,CVS/SVN
方式1簡單易行 ,但是不能支持多人協同工作,其它人在文件被簽出后必須要等
待它被提交確認后才能進行更改。
方式2效率更高一些,但是多人同時進行修改操作時有可能會引發沖突。
SVN常用的命令:
?? ?checkout, authentication, update, add, delete, commit, rename, import, export...
關于命令的一點說明:
commit: 不要把垃圾文件提到到服務器,垃圾文件包括中間文件,與具體機器環境相關的文件,可以由其它文件生成的文件等。
rename: Windows系統對于文件名不區別大小寫而SVN區分,所以在改名時請注意。SVN的rename功能實際是delete再add。
import: 用于將本地文件導入SVN,導入內容不包含當前目錄。
export: 用于導出SVN目錄結構,導出的結果不會帶有隱藏的.svn目錄。
resloved: 用于解決完沖突之后確認新的文件。當兩個人先后修改了同一部分的內容后,再提交就會產生conflicts,小模型的沖突可以手動使用differ工具修改再resloved確認,大規模的沖突就需要放棄修改結果重新編輯了。
Log Message:
每次提交的時候都應該寫上log,來說明所做的改動,可自己定義某種log格式。
屬性:
SVN中可給目錄增加property,比較重要的屬性是external,這用來表示一個外部引用,使用方法為:FloderName?? ?URL,結果是在目錄下創建一個以URL地址為內容的文件夾。external link始終保持最新,只要修改原始內容,所有的引用都會更新。這很適合來管理系統的公共部分的內容。
tag:一個非常有用的命令,用來創建一個系統的快照,把所有的文件鎖定到某一個指定的版本號。需要注意的是在tagging的時候external link仍然會保持到最新的版本,所以在tagging之前需要手動指定一個external的版本號,在URL前面加上-r xxx來指定是哪個版本的external。并在tagging完成之后還原這些external,否則它們就不始終保持到最新的版本。