文件项目SVN+TortoiseSVN+Subclipse使用总结
近來使用開辟的過程中涌現(xiàn)了一個小問題,順便記錄一下原因和方法--文件項目
????
一、SVN、TortoiseSVN、Subclipse分析
????
????團隊開辟技術:
????(1)單元測試;
(2)版本控制;
(3)項目主動化;
????
????SCM:軟件配置管理,包含SVN;
????SVN是CVS的接棒人,是版本控制系統(tǒng);
????版本控制簡單地說就是要讓團隊的人能夠快速的統(tǒng)一代碼,增強相同;
????SVN由客戶端和服務器組成,服務器是項目倉庫,即存儲項目的地方;客戶端則是當?shù)乜截?#xff0c;即由SVN管理,可以提交到項目倉庫和從項目倉庫中獲得項目的地方;
????svn宗旨:萬物皆目錄;
????TortoiseSVN是SVN的客戶端,因為如果是傳統(tǒng)的Subversion客戶端,須要通過命令行完成任務,而TortoiseSVN是通過GUI的方式完成的;
????Subclipse是Eclipse中的一個插件,簡單的說也是一個SVN客戶端,只是為了方便Eclipse開辟,因此可以在Eclipse中進行提交、導入;
????
下載地址:
????SVN:https://sourceforge.net/projects/win32svn/files/1.6.17/svn-win32-1.6.17.zip/download
????TortoiseSVN:https://downloads.sourceforge.net/project/tortoisesvn/1.7.6/Application/TortoiseSVN-1.7.6.22632-win32-svn-1.7.4.msi?r=&ts=1331344321&use_mirror=cdnetworks-kr-2
????Subclipse在線安裝地址:http://subclipse.tigris.org/update_1.6.x
????
????注意:配置SVN時須要配置環(huán)境變量;
????(1)path=C:/subversion/bin;?
????(2)SVN_EDITOR=notepad; 設置默認的編輯器
????
????
????
????
????
二、SVN命令分析
????
????檢測版本:svn --version 和 ?svnadmin --version
創(chuàng)建項目倉庫:svnadmin create D:\svn-repos
導入tmpdir目錄下的文件到sesame/trunk中,等于添加而不是修改:
D:\svnworkspace\tmpdir>svn import -m "import Sesame project" . ?file:///d:/svn-repos/sesame/trunk
-m表現(xiàn)可以提供一些注釋;.表現(xiàn)把當前目錄下的文件導入;
注:只有在import時須要項目倉庫的URL,在diff、commit都不須要URL;
在svnworkspace下checkout指定最新的項目,并命名為sesame:D:\svnworkspace>svn co file:///d:/svn-repos/sesame/trunk sesame
checkout指定版本(此處為第一版本)的項目:svn checkout -r 1 svn://xiazdong-PC/sesame/trunk test3
查看文件狀態(tài):svn status Day.txt
查看項目倉庫是不是有更新:svn status --show-updates
注:
????(1)M:當?shù)乇恍薷?#xff0c;但是沒有提交;
(2)C(Conflict):更新時有沖突存在;
(3)G(Gather):當?shù)匕姹竞晚椖總}庫版本合并到一同;
(4)U(Update):當?shù)匕姹颈怀晒Ω?#xff1b;
(5)A(Add):任務拷貝中添加新文件;
(6)D(Delete):文件在項目倉庫中被刪除,所以任務拷貝中此文件也被刪除;
查看當?shù)乜截惖奈募膭?如果項目倉庫有改動,檢查不出):svn diff Day.txt
查看項目倉庫和當?shù)厝蝿湛截惖膮^(qū)分:svn diff -rHEAD Number.txt
查看兩版本之間的差別:svn diff -r2:4 Number.txt
查看近來的改動:svn diff -r PREV:BASE Number.txt
更新當?shù)乜截?#xff1a;svn update
更新指定目錄或文件:svn update Number.txt dir1/ dir2/
注:當發(fā)生沖突時,會涌現(xiàn)提示修改;
選擇: (p) 推遲,(df) 顯示全部差異,(e) 編輯,
? ? ? ?(mc) 我的版本, (tc) 他人的版本,
? ? ? ?(s) 顯示全部選項:?
提交改動:D:\svnworkspace\sesame>svn commit -m "注釋"
但是注意:commit只會提交改動,如果在當?shù)乜截愔袆?chuàng)建一個文件,則須要在此之前 svn add 文件
如果提交時沖突沒處理,則提交失敗;
獲得某個文件的日志:D:\svnworkspace\sesame>svn log Day.txt
獲得某個文件的詳細日志:D:\svnworkspace\sesame>svn log --verbose Day.txt
獲得兩版本之間的日志:svn log -r 2:4 Day.txt
分頁顯示日志:svn log | more
注:svn log不一定是最新的日志,因為可能任務拷貝的版本和項目倉庫的版本不一致,svn log只能顯示任務拷貝版本的日志
“一年之計在于春”,十幾歲的年紀,正是人生的春天,別辜負了歲月老人的厚愛與恩賜。行動起來,播種夢想吧!
????注:*表現(xiàn)有更新;
????
????獲得sesame任務拷貝信息:svn info sesame
????
拷貝文件:svn copy Number.txt copy.txt
注:拷貝后只是在當?shù)赝瓿?#xff0c;須要提交更新項目倉庫;
重命名文件:svn move copy.txt copy.py
重命名目錄:svn move dir1 dir2
直接在項目倉庫中重命名目錄:D:\svnworkspace\test3>svn move -m "rename" svn://xiazdong-pc/sesame/trunk/Number.txt svn://xiazdong-pc/sesame/trunk/dest.txt
顯示文件的每行的最新版本及誰變動的:svn blame Number.txt
還原文件:svn merge -r 7:6 Number.txt
????
?
????
聯(lián)網(wǎng)訪問的三種方法:
????(1)svnserve
(2)ssh
(3)apache
對于某個特定的項目倉庫啟動svnserve:start svnserve --daemon --root D:\svn-repos?
通過svnserve簽出文件:svn co svn://xiazdong-PC/sesame/trunk vizier
默認svnserve管理的項目倉庫是只讀的,即只能簽出,不能提交;在/conf/svnserve.conf中添加:
anon-access=read ?//匿名用戶只讀
auth-access=write//授權用戶可寫
passowrd=passwd//在passwd文件內配置
在passwd文件中配置:xiazdong=12345表現(xiàn)用戶名是xiazdong,密碼是12345
注意:在svnserve.conf和passwd兩個文件配置時必須頂格,否則無效;
屬性:文件的元數(shù)據(jù);
為Number.txt設置checked-by屬性為xiazdong:svn propset checked-by "xiazdong" Number.txt
編輯Number.txt中的checked-by屬性(須要配置SVN_EDITOR設置默認編輯器):svn propedit checked-by Number.txt
列出Number.txt的所有屬性:svn proplist Number.txt
獲得某個屬性:svn propget checked-by Number.txt
經(jīng)常使用屬性:
(1)svn:ignore:疏忽某些文件; *.java表現(xiàn)疏忽java文件
(2)svn:eol-style:設置換行符,一般為 native,表現(xiàn)隨著操作系統(tǒng)而變化;
(3)svn:mime-type:設置文件的mime類型;
(4)svn:needs-lock:設置文件加鎖
一般我們可以在文件中配置autoprops,主動設置;
1.尋覓config文件:
(1)echo %APPDATA%
(2)\subversion\config
2.設置enable-auto-props = true
3.找到[auto-props],并設置主動屬性
????
文件加鎖
?
????嚴格加鎖:只允許一個人改動一個文件;
悲觀加鎖:比如有A、B兩人同時checkout了一個文件File.java,并且同時對他們修改了,A先提交,當B想提交時,必須先svn update,把自己的目錄釀成最新的當前才能夠提交,更新時會涌現(xiàn)兩種情況:
(1)如果A和B改動的不是同一行,那么會畸形合并;
(2)如果A和B改動的是同一行,則會在源代碼中標記出沖突:
????而Subversion默認是采用悲觀加鎖;
????
????對于文本文件,可以通過合并的方式處理沖突,但是對于二進制文件,則須要文件加鎖處理;
為文件開啟文件加鎖:為某個文件添加svn:needs-lock屬性,并且commit到文件倉庫;
文件加鎖:svn lock Day.txt -m "lock"
強制解鎖(雖然別人有鎖,但是另外一個人可以強制解開鎖,但沒有獲得鎖):svn unlock --force svn://xiazdong-pc/sesame/trunk/Day.txt
強制加鎖(不管有沒有人有鎖,都搶過來):svn lock --force Day.txt
????
????轉向其他目錄:svn switch svn://xiazdong-pc/sesame/branches/b1
????
????沖突:
????<<<<<<< .mine
????本來代碼
????=======
????項目倉庫代碼
????>>>>>>> .r4
????
????分支和標簽:簡單地來說就是某個任務拷貝的復制;
????在分支上開辟:
????(1)在項目倉庫中創(chuàng)建branches目錄; svn mkdir svn://xiazdong-pc/sesame/branches
????(2)在項目倉庫中將骨干復制到b1目錄中; svn copy svn://xiazdong-pc/sesame/trunk svn://xiazdong-pc/sesame/branches/b1
????(3)通過b1目錄checkout一份任務拷貝; ? svn co svn://xiazdong-pc/sesame/branches/b1 b1
????(4)提交;
????
????
三、TortoiseSVN使用分析
????
????如果曉得SVN中的術語,其實此工具非常易于入門和使用;
????
????
1.checkout
?????
????
2.沖突問題
????
????
????
????
????
?
????
四、Subclipse使用分析
????
1.checkout
????
????
????
?
????
2.commit等
????
文章結束給大家分享下程序員的一些笑話語錄: 一程序員告老還鄉(xiāng),想安度晚年,于是決定在書法上有所造詣。省略數(shù)字……,準備好文房4寶,揮起毛筆在白紙上鄭重的寫下:Hello World
總結
以上是生活随笔為你收集整理的文件项目SVN+TortoiseSVN+Subclipse使用总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面试评估表和评估指标雷达图(附模板下载)
- 下一篇: 【51单片机快速入门指南】4.1: I2