一. svn 簡介:
Svn(Subversion)是近年來崛起的版本管理工具,在當前的開源項目里(J2EE),幾乎95%以上的項目都用到了 SVN。Subversion 項目的初衷是為了替換當年開源社區最為流行的版本控制軟件 CVS,在 CVS的功能的基礎上有很多的提升同時也能較好的解決 CVS 系統的一些不足。
TortoiseSVN是 Subversion 的 Windows 擴展。它使你避免接觸 Subversion 枯燥而且不方便的 Command Line。它完全嵌入 Windows Explorer,使用時只需在正常的窗口里右鍵操作就可以了
Subversion為版本控制軟件的服務器端。
TortoiseSVN為版本控制軟件的客戶端。
二。Subversion下載安裝
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
安裝界面
第一步:點擊Setup-Subversion-1.6.5.msi
第二步:
第三步:安裝到software目錄下的svn目錄下這兩個目錄都要提前建立
第四步:
第五步
第六步:安裝完成
第七步:最終安裝完成后,如何驗證在我們的服務器上就成功安裝了Subversion呢?Subversion在安裝時,同JAVA的開發環境(JDK)的安裝一樣,同樣會自動的把安裝目
錄下的bin目錄設置到系統的系統變量中去。如果你是使用的綠色版,那么設置系統變量
這個步驟就得你自己手動的來設置了,如:
第八步:,如果我們在系統的命令行執行命令:
【svnserve –version】
如果能正常顯示如下圖所類示的信息,則表明我們的Subversion的安裝是成功了的。
subversion 服務的啟動(在xp 系統中)
1》 雙擊執行 Setup-Subversion-1.6.5.msi
詳見:SVN安裝界面文檔
2》 subversion 安裝成功后,在啟動svn前需要先建立一個文檔倉庫
我們使用svn服務器端命令 svnadmin建立 如下:
svnadmin create F:\software\repository\svn\itcast
3》 建立好文檔倉庫后,我們進行subversion啟動
第一種方式:命令行啟動,我們使用服務器端命令 svnserve 如下:
svnserve -d -r F:\software\repository\svn\itcast
啟動后我們如何知道svn啟動成功呢? 我們查看端口使用情況:
netstat -an
我們看到3690端口服務,說明啟動成功
第二種方式:安裝svn后配置windows自動啟動服務
sc create SVN-Service binpath= "D:\Subversion\svn\bin\svnserve.exe--service -r J:\repository\svn" displayname= "SVN-Service" start= auto depend= Tcpip
binpath 指定svnserve 的路徑和命令
start= auto 表示服務自動啟動。注意:等於號的左邊無空格,而右邊必須有一個空格
Displayname、start、depend
在此命令中-r(--root)項目版本倉庫的根目錄
啟動服務
net start SVN-Service
查看服務是否添加成功,可以選擇windows 控制面板--》》管理工具--》》服務 會發現列表中有SVN-service服務
刪除服
sc delete SVN-Service
如果要重新安裝SVN-Service請先刪除這個服務
如下圖。。
這樣。。SVN-Service服務端就算是安裝完成了 ,,
你也可以自己設置為手動啟動。。以免占開機時間。
SVN-Service服務端 是否是打開的,還可以通過查看本機的端口號3690是否開啟來確認。每一項服務的開啟都有會開啟一個獨有的端口號 如mysql 3306 tomat 8080 等等
可以用netstat -an 命令查看 如圖
三。Tortoisesvn下載安裝
http://tortoisesvn.net/downloads
360安裝衛士軟件寶庫
我們安裝版本TortoiseSVN-1.7.6.22632.msi
Tortoisesvn漢化
http://tortoisesvn.net/downloads(Language packs)
Tortoise SVN安裝界面
第一步:點擊TortoiseSVN-1.7.6.22632.msi
第二步:
第三步:
第四步:
第五步
第六步:安裝完成
第七步:最終安裝完成后,系統提示是否重啟,點擊yes(因為不重啟可能會造成顯示不正確)
第八步:我們如何判斷客戶端安裝成功呢
在任一文件夾中點擊鼠標右鍵,如果顯示如下圖所示,說明安裝是成功了的
四。給myeclipse 9.0 安裝svn插件
方法 一
1.打開MyEclipse 9.0,Help > Software Updates > Find and Install...
如果Help下沒有:window--preferences--general-capabilities,右側選中Classic Update,“apply”即可,現在help中就出現“Software Updates”了。
在彈出的菜單中選
Search for new features to install >next > New Local Site... >
到下載的SVN 插件解壓出來的文件夾(subclipse-1.6.5) > 確定> Finish,
在彈出的菜單中,Select the features to install:
在剛加進去的路徑/site-1.6.5 這一項前打鈎,此時會報錯,然后點開
Subclipse 前的加號,去掉Subclipse Integration for Mylyn
3.x(Optional)3.0.0 前的勾,錯誤消失> next > 選I accept the terms in
the license agreements > next > next > 選中所有的8項,然后Change
Location...,在彈出的菜單中選Add Location...,選擇在第2步中建的文件夾的路
徑(C:\Program Files\MyEclipse 6.5\eclipse\plug-in\site-1.6.5)>
Finish > 在彈出的菜單中選Install All > Yes ;
本圖是我已經安裝好后的 作為報錯的提示
2、完成第3步后,MyEclipse 會重啟,Window > Show View > other > 選擇
打開SVN 目錄下的SVN Repositories;
3、可以正常使用SVN 插件了。
方法二 這個方法比較通用。。也適合在eclipse中喲
1.把下載好的 eclipse_svn_site-1.6.5.zip zip包解壓到myeclipse6.5根目錄下
2.在links 文件夾下新建一個名為eclipse_svn_site-1.6.5.link 的文件
3.在eclipse_svn_site-1.6.5.link 中添加path
path=D:/javasoft/MyEclipse6.5/eclipse/eclipse_svn_site-1.6.5
4.重啟 eclipse 或者myeclipse 如果出現首頁 就是打開eclipse 那個 非常漂亮的主頁
說明安裝好了 或者看見這個
下圖是一個svn的訪問圖
svn 的策略
拷貝-修改-合並方案(svn,cvs采用)
拷貝 :如果一個新成員剛來到公司時,項目經理就會讓他的部員第一次去checkout .
這里的checkout 是接觸項目的第一次對svn的操作。目的是從服務器中的svn倉庫中下載到本次項目的源碼,一般今后和同事們一起構建這個項目,為這個項目來添磚加瓦,其后會是一頓的 update
修改:這個可以這么理解,就是修改從svn倉庫下載來的源碼。不管是你自己以前寫的還是別的同事的源碼,都可以修改。
合並: 在兩個人a,b先后 修改了 xxx.java 但是 b.先commit了。。 后來a在commit時, 發現版本過期。
這時。a不得不update 后在慢慢的合並 自己和b的代碼。。然后才commit .要是b未調試好自己的代碼。就commit 了 。這些a就蛋疼啦。。 還要解決b遺留下來的問題。 要知道這個合並不是好事呀
小例子。
先來三個人物。。項目經理yoyo 職員lili 公司新人biabai
先來創建 svn倉庫【repository】
倉庫在我本機上給建立啦。。本人也沒能力去買一台深藍Super cp 來當服務器ya,沒法,我這破本是又當Server 又當Client。嘿嘿開始啦。
在先前我們啟動 SVN-Server時就指定了svn 倉庫了。
這里J:\repository\svn 就是我們的大倉庫 ,這里指定的是多倉庫.
之后我們在svn文件夾里新建一個如AO項目的文件夾ao
進入AO項目的文件夾。我們將把它作為一個小倉庫
右鍵鼠標依次選擇 TortoiseSVN ->Create repository here
之后。。選擇 ok 就在服務器端上的J:\repository\svn大倉庫下好了我們OA項目的代碼倉庫oa 小倉庫
倉庫目錄說明
db目錄:就是所有版本控制的數據存放文件。
hooks目錄:放置hook腳本文件的目錄。
locks目錄:用來放置Subversion文件庫鎖定數據的目錄,用來追蹤存取文件庫的客戶端。
format文件是一個文本文件,里面只放了一個整數,表示當前文件庫配置的版本號。
conf目錄:是這個倉庫的配置文件(倉庫的用戶訪問帳號、權限等)。
下一步。。
給我們的oa項目小倉庫創建訪問權限
是的,看了上面的說明后可知,在conf文件夾下 有倉庫的配置文件
我們進入conf 如圖:
看圖的情況我們得先配置 svnserve.conf 文件。。
用一般的記事本打開。。我們稍稍的修改幾下就差不多啦
第一步對svnserve.conf 文件作如下修改,找到以下四行: #anon-access = read #auth-access = write #password-db = passwd #authz-db = authz 將這四行前的“#”號去掉,並修改如下: anon-access = none 不允許匿名用戶訪問 auth-access = write 通過驗證的用戶可以讀寫 password-db = passwd 用戶保存文件 authz-db = authz 權限管理文件
第二步對passwd中 添加一行 user1=user1passwd (前面是用戶名,后面是密碼) ltw = ltwpasswd
第三步對authz中 作如下操作
[groups] svngroup = ltw [itcast:/] @svngroup = rw 定義組svngroup下的所有用戶擁有 讀寫權限 (注意:rw權限具有繼承性,例如我們對於根目錄設置了有讀寫權限 則對於根目錄下的所有子目錄同樣具有讀寫權限) user1 = r 定義用戶user1擁有讀權限 * = 其他用戶無任何權限
如果權限保護目錄為中文,則必須將authz文件利用ultraedit工具轉存為UTF-8 無BOM 格式 否則權限不生效
給倉庫放東西
接下來 ,項目經理yoyo就會把項目的框架給搭建好。發布到 倉庫上 ,然后讓程序員們checkeout 來得到了
打開myeclipse 6.5 新建一個oa 項目如圖
點擊finish后我們算是模擬完成項目經理搭建項目的框架了 。
接下來 打開svn Repositories 視圖 點擊 下圖紅框中的按鈕 進入 Add SVN Repository 窗口
輸入你要上傳的 倉庫的Url ,由於是本機上的我就svn://localhost/oa 啦 這里的oa 就是我這個項目對應的小倉庫啦。 點擊finish 后會出現如下圖 左邊 有一個黃色小桶 后邊跟着svn://localhost/oa 的字樣的
這表明。你連接成功了。
如下圖。當我們准備第一次Checkout時。什么都沒有。
如下圖。讓后yoyo就上傳項目了。當然這是一個Share 的過程:
在share 之前,你的項目的圖片沒有變化就是一個普通的web project 項目的圖標
步驟一
步驟二
步驟三
步驟四
點擊finish 完成。。完成后,,yoyo的項目就變成帶 * 的 web project 啦。 這個提示。。這個項目需要更新啦 。。那我們就第一次提交來更新它。
當我們Commit 后。又會變成帶有 黃色小桶的web project 圖標 這說明此項目是更新過的
提交時會需要密碼輸入。。你可以讓它記在你的密碼
如下一系列圖。是提交過程: 1.
2.
3
4
看這里 項目圖標右下角變成黃色小桶啦。
之后我們來開始 協同 工作。。
yoyo 新建一個MyJsp.jsp ,在里面輸入一個"svn test <br>"字樣 保存后 Myjsp.jsp的圖標右下角變成? 說明Myjsp.jsp 修改了,還沒有沒有提交 ,我們提交以下。
步驟如下:
1
2
3
4 到這里 。項目中文件的圖標都在右下角都添加了一個黃色小桶。見到小桶讓人舒服呀。。。這表示你的工作完成了。
同時 。。程序員lili 要參加這個項目的開發中來。。lili 也得先checkout 從服務器端共享一份源碼,來工作
這里我們就沒有用myeclipse來演示 ,為了熟悉以下窗口下的工作方式。
lili在他的工作空間中 新建了一個lili的文件夾,以便來接受存放源碼
步驟如下:
1
2 進入lili 文件夾,在窗口內單擊鼠標右鍵,出現如下圖的菜單。然后checkout 吧
3 , 輸入項目經理yoyo給lili的 ao項目倉庫地址 如下圖高亮處,
4點擊ok 后就有一個綠園白鈎的讓人舒服的文件夾,沒錯 這個就是項目經理yoyo構建好的svnTest項目
5, 進入項目中發現和yoyo在myeclipse 中的文件是一樣的。呵呵。。這就是svn 的高明之處啦。。
6 在WebRoot 目錄下 還找到了 yoyo 編輯過的Myjsp.jsp.
為了體現 協同。。yoyo再次在MyJsp.jsp中添加了 yoyo add agian<br> 並且提交了
步驟如下:
1
2 提交: 把yoyo修改的Myjsp.jsp 提交到服務器上去,更新項目的版本
3 lili 得知 yoyo 更新了Myjsp.jsp ,便更新了一下自己的項目。
4 lili 再次打開 yoyo修改過的MyJsp.jsp 后。 發現多了 yoyo add again<br> 如下圖紅框中的內容。。
這就對了。。。而且 版面跟新為4 了
這時來了一位新員工。。baibai
baibai也要加入這個項目來。。就在 項目經理個baibai添加了用戶和密碼。。如下圖。。不明白請參考上面倉庫設置權限的小節。
baibai 上班第一天也是 先在 SVN Repositories 視圖中添加項目經理yoyo指定 svn 倉庫
如下圖
然后導入 要一起協同開發的項目
1.File菜單-》Import
2 .svn ->Checkout Projects form SVN
3 選擇連接
4.選中項目 點擊finish
下圖是還沒有導入項目之前的樣子
導入后的的 svnTest 項目
點開 項目的+ 號 后找到 myJsp.jsp 並進行修改 。添加 baibai add<br> 后提交。。
得知被baibai,修改Myjsp.jsp 后的lili 的更新一下 項目
下圖為 lili update 后的 myjsp.jsp 。。
就此 一次次的新建文件 。修改 ,提交。。更新 后。。。。。項目就完成了。。
當 發現 別人修改后的代碼不對時還可以通過History 用舊版本的文件替換新的有bug的文件