2 回答

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊
方法/步驟
1
軟件下載
<1>、下載Subversion服務(wù)器程序
到官方網(wǎng)站的下載二進(jìn)制安裝文件,來(lái)到二進(jìn)制包下載部分,找到 Windows NT, 2000, XP and 2003部分,然后選擇Apache 2.0 或者 Apache 2.2,這樣我們可以看到許多下載的內(nèi)容,目前可以下載Setup-Subversion-1.7.12.msi 。
<2>、下載Subversion的Windows客戶端TortoiseSVN。
TortoiseSVN是擴(kuò)展Windows Shell的一套工具,可以看作Windows資源管理器的插件,安裝之后Windows就可以識(shí)別Subversion的工作目錄。
官方網(wǎng)站是TortoiseSVN ,下載方式和前面的svn服務(wù)器類似,在Download頁(yè)面的我們可以選擇下載的版本,目前的最高穩(wěn)定版本的安裝文件為TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi。
2
svn服務(wù)器和客戶端安裝
<1>、安裝Subversion,直接運(yùn)行Setup-Subversion-1.5.3.msi ,根據(jù)提示安裝即可,這樣我們就有了一套服務(wù)器可以運(yùn)行的環(huán)境。
<2>、安裝TortoiseSVN,同樣直接運(yùn)行TortoiseSVN-1.5.5.14361-win32-svn-1.5.4.msi按照提示安裝即可,不過(guò)最后完成后會(huì)提示是否重啟,其實(shí)重啟只是使svn工作拷貝在windows中的特殊樣式生效,與所有的實(shí)際功能無(wú)關(guān),這里為了立刻看到好的效果,還是重新啟動(dòng)機(jī)器。
<3>、安裝svn的客戶端程序,需要的話還可以安裝svn的語(yǔ)言包,注意語(yǔ)言包的版本也必須與客戶端程序的版本一致
3
建立版本庫(kù)(Repository)
運(yùn)行Subversion服務(wù)器需要首先要建立一個(gè)版本庫(kù)(Repository),可以看作服務(wù)器上存放數(shù)據(jù)的數(shù)據(jù)庫(kù),在安裝了Subversion服務(wù)器之后,可以直接運(yùn)行,如:
svnadmin create E:\svndemo\repository
就會(huì)在目錄E:\svndemo\repository下創(chuàng)建一個(gè)版本庫(kù)。
我們也可以使用TortoiseSVN圖形化的完成這一步:
在目錄E:\svndemo\repository下"右鍵->TortoiseSVN->Create Repository here...“, 然后可以選擇版本庫(kù)模式, 這里使用默認(rèn)即可, 然后就創(chuàng)建了一系列目錄和文件。
4
SVN配置用戶和權(quán)限
來(lái)到E:\svndemo\repository\conf目錄,修改svnserve.conf:
# [general]
# password-db = passwd
改為:
[general]
password-db = passwd
然后修改同目錄的passwd文件,去掉下面三行的注釋:
# [users]
# harry = harryssecret
# sally = sallyssecret
最后變成:
[users]
harry = harryssecret
sally = sallyssecret
在passwd文件中,“=”前的字符就是用戶名,后面的就是密碼。還要注意“[users]”前面的注釋“#”一定要?jiǎng)h除掉。
5
運(yùn)行獨(dú)立服務(wù)器
在任意目錄下運(yùn)行:
svnserve -d -r E:\svndemo\repository 我們的服務(wù)器程序就已經(jīng)啟動(dòng)了。注意不要關(guān)閉命令行窗口,關(guān)閉窗口也會(huì)把svnserve停止。
6
初始化導(dǎo)入
來(lái)到我們想要導(dǎo)入的項(xiàng)目根目錄,在這個(gè)例子里是E:\svndemo\initproject,目錄下有一個(gè)readme.txt文件:
右鍵->TortoiseSVN->Import...
在URL of repository輸入“svn://localhost/trunk”
在Import Message中輸入你的日志信息
完成之后目錄沒(méi)有任何變化,如果沒(méi)有報(bào)錯(cuò),數(shù)據(jù)就已經(jīng)全部導(dǎo)入到了我們剛才定義的版本庫(kù)中。
需要注意的是,這一步操作可以完全在另一臺(tái)安裝了TortoiseSVN的主機(jī)上進(jìn)行。例如運(yùn)行svnserve的主機(jī)的IP是133.96.121.22,則URL部分輸入的內(nèi)容就是“svn://133.96.121.22/trunk”。
7
基本客戶端操作
取出版本庫(kù)到一個(gè)工作拷貝:
來(lái)到任意空目錄下,在本例中是E:\svndemo\wc1,運(yùn)行右鍵->Checkout,在URL of repository中輸入svn://localhost/trunk,這樣我們就得到了一份工作拷貝。
在工作拷貝中作出修改并提交:
打開(kāi)readme.txt,作出修改,然后右鍵->Commit...,這樣我們就把修改提交到了版本庫(kù),我們可以運(yùn)行。
察看所作的修改:
readme.txt上右鍵->TortoiseSVN->Show Log,這樣我們就可以看到我們對(duì)這個(gè)文件所有的提交。在版本1上右鍵->Compare with working copy,我們可以比較工作拷貝的文件和版本1的區(qū)別。
最后,所有的內(nèi)容都已經(jīng)錄制為動(dòng)畫文件,大家可以參考。
關(guān)于本教程大家有什么意見(jiàn),可以這里討論 。
如果更新文件以后,有兩個(gè)人或者多個(gè)人同時(shí)修改了某個(gè)文件的某個(gè)位置,是否沖突,(一般不會(huì)這樣子,因?yàn)樯蟼鞯陌姹臼强梢跃幾g通過(guò)的,而且每個(gè)人負(fù)責(zé)自己的模塊,不會(huì)多人獨(dú)立修改同一個(gè)文件,別人也是先更新,后上傳修改,,,,)
開(kāi)發(fā)者習(xí)慣性動(dòng)作。早上上班第一件事就是更新svn版本庫(kù),再開(kāi)始一天的工作。
晚上下班,或者其他時(shí)候要上傳東西可以直接上傳因?yàn)槟阖?fù)責(zé)的東西沒(méi)人去修改。
沖突是怎么產(chǎn)生的呢:因?yàn)椴煌娜?,同時(shí)修改了同一個(gè)文件的同一個(gè)地方,這個(gè)時(shí)候,他提交了,你沒(méi)有提交,你就提交不了,這個(gè)時(shí)候,你要先更新,更新就會(huì)出現(xiàn)代碼沖突問(wèn)題。最好不要多人同時(shí)修改一個(gè)文件,公用的文件,更改之前要和大家溝通一下,或者解決沖突 呵呵
先更新,沒(méi)有沖突,再提交。有沖突,解決沖突再提交。否則也提交不了。
對(duì)于一些處于沖突狀態(tài)下的文件 ,右鍵TortoiseSVN ->Resolved,解決沖突。解決沖突: http://www.blogjava.net/jasmine214--love/archive/2011/04/07/347769.html
更新-解決沖突-刪掉以下三個(gè)文件-提交(如果自己沒(méi)有修改的文件有沖突,刪除再更新即可,自己修改的文件解決沖突)
test.php.mine 是沖突前自己的文件
test.php.版本號(hào) 是沖突前本地的版本文件
test.php.服務(wù)器的版本號(hào) 是沖突后服務(wù)器版本文件
END
注意事項(xiàng)
如果修改文件后提交不了,大多是因?yàn)榘姹静灰恢略斐傻?。更新一下,不產(chǎn)生沖突的情況,就可以提交了。
更新文件,如果出現(xiàn)沖突的情況,打開(kāi)沖突文件test.php會(huì)看到類似以下的內(nèi)容
<<<<<<<<<<<<<<<
asdfadfadfadf
11111111111111
=======
asdfadfadfadf
111111111111111
222222222222
>>>>>>>>>>>>>>>>
結(jié)合別人修改的內(nèi)容和自己修改的內(nèi)容,然后把文件中的<<<<<,=====,>>>>>>>這類沖突符號(hào)去掉。去掉后,還是不能提交的,為什么?因?yàn)闆_突時(shí)會(huì)產(chǎn)生三個(gè)文件,有這三個(gè)文件存在肯定提交不了。
客戶端用的tortoisesvn(這個(gè)估計(jì)程序員用的最多),沖突時(shí)會(huì)多產(chǎn)生,三個(gè)文件
test.php.mine 是沖突前自己的文件
test.php.版本號(hào) 是沖突前本地的版本文件
test.php.服務(wù)器的版本號(hào) 是沖突后服務(wù)器版本文件
提交的時(shí)候,把這三個(gè)文件刪除掉就可以提交了。
產(chǎn)生覆蓋的原因。
a),在修改沖突文件test.php時(shí),把別人代碼都刪除掉了,只留下了自己的代碼。這樣就會(huì)產(chǎn)生覆蓋了。
b),把test.php.mine中的內(nèi)容直接copy到test.php文件,這樣也會(huì)產(chǎn)生代碼覆蓋。
添加回答
舉報(bào)