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