jasmine214--love

          只有當(dāng)你的內(nèi)心總是充滿快樂、美好的愿望和寧靜時,你才能擁有強(qiáng)壯的體魄和明朗、快樂或者寧靜的面容。
          posts - 731, comments - 60, trackbacks - 0, articles - 0

          SVN 備課筆記(2011.4.7-kiki

          *******************************************************************************

          好的,我們現(xiàn)在開始,為了照顧新員工,我先介紹一下接下來如何進(jìn)行我們的培訓(xùn)內(nèi)容。

          首先,我會先帶大家過一遍SVN 的常用命令,然后,我們實(shí)際演示一下SVN在開發(fā)過程中的實(shí)際使用周期及中間會遇到什么問題。

          *******************************************************************************

          首先,我們了解一下什么是Subversion,以及Subversion的歷史由來。

          SVN 是一個自由/開源的版本控制系統(tǒng),SVN 讓你的文件和目錄可以超越時空,允許你的數(shù)據(jù)恢復(fù)到早期版本,可以檢查所有的歷史。所以我們將SVN理解成一個時間機(jī)器。

          現(xiàn)在我們知道SVN是一個版本控制系統(tǒng),(有一些版本控制系統(tǒng)也是SCM系統(tǒng),可以用來管理源碼樹,并且具備很多與軟件開發(fā)有關(guān)的特性-比如對編程語言的支持或者提供程序構(gòu)建工具,)不過SVN不是這樣的系統(tǒng),大家有興趣可以了解下其他的版本管理工具。

          *******************************************************************************

          這就是Subversion的產(chǎn)生歷史,從2000年開始,2001年完成第一個完整版本,到現(xiàn)在有1.6版了。

          *******************************************************************************

          Subversion的架構(gòu),我們可以看到:可以有3中方式來訪問SVN庫。我們現(xiàn)在最多使用的是通過Apache的這種URL的方式來訪問。

          *******************************************************************************

          SVN它有一個與大多數(shù)版本控制工具不一樣的特點(diǎn):在SVN中,修訂號是針對代碼庫中所有對象的,包括:目錄/子目錄/文件。修訂號的實(shí)際意義是對代碼庫的第幾次提交。

          *******************************************************************************

          接下來,我們看一下SVN客戶端經(jīng)常使用的一些命令。下面我會給大家演示。

          測試庫:/home/kikitest

          訪問路徑:http://10.58.100.247/kikitest/

          演示服務(wù)器:10.58.100.198

           

          1.       svn co s204代碼 1分鐘)(1-4518

          2.       svn info ---------查看代碼庫的屬性信息。

          3.       svn st--------查看文件的修改信息(M,U,C,?,?代表這個文件是不受控的。

          4.       svn log –r 100  -v --------查看代碼庫的日志信息,-r,-v,兩個參數(shù)show出某個版本的時候具體修改了哪些文件。

          *******************************************************************************

          5.       svn cp MakeFile makefile1---------

          6.       svn st -----------會發(fā)現(xiàn)本地的工作拷貝WC中多了一個文件makefile1,前面的/代表這個文件目前是不受控的。

          7.       svn ci ---------提交

          8.       svn delete------------刪除一個文件(是庫中的文件,狀態(tài)不在中間狀態(tài)如M,C),提交之后庫中文件將真正被刪除。

          9.       svn revert testfile2---------我們試圖修改一個文件,會看到狀態(tài)變成M,在testfile2修改之后,我們考慮將他進(jìn)行提交,如果發(fā)現(xiàn)修改很多是有問題的話,可以使用svn revert 取消這個文件的所有更改。

          10.   svn blame Makefile ----------我們可以查看某個文件的修改歷史,可以具體到每行代碼的修訂號和修改者。

           *******************************************************************************

          11.   svn cat Makefile –r 400 ---------查看某個版本的文件內(nèi)容。在我們的WC中,一個文件只存在一個修訂號,想要看其他任一修訂號的某個文件,可以用svn cat 加上版本號即可。

          12.   svn diff Makefile –r 2298:3322-----------查看一個文件在兩個修訂號之間的差異。

          *******************************************************************************

          13.   svn co s204 –r 4500---------co s204代碼

          14.   svn info --------------我們看到是4500版本的代碼了

          15.   svn up –r 4518---------想更新到4518版本代碼,從這里我們看到從4500-4518,變化過程中修改了一些文件,刪除過一些文件,同事新增了一些文件,最終產(chǎn)生了4518版本的代碼。

          *******************************************************************************

          16.   svn export url 目錄名-----------從某個其他庫的源碼導(dǎo)出一個干凈的目錄樹。

          17.   svn import /目錄名  目的地/庫名--------導(dǎo)入到庫中。

          18.   svn mv bcm963xx trunk/----------搬移目錄內(nèi)容

          19.   svn copy  url1  url2 –m “………” ---------創(chuàng)建新分支,可以加版本號-r,linux下的WC目錄中就可以執(zhí)行創(chuàng)建分支了。

          *******************************************************************************

          20.   處理沖突的方法:

          下面我說一個,通用的解決沖突的辦法,還不會覆蓋代碼,以test.php為例

          1,修改文件后提交不了,大多是因為版本不一致造成的。更新一下,不產(chǎn)生沖突的情況,就可以提交了。

          2,更新文件,如果出現(xiàn)沖突的情況,打開沖突文件test.php會看到類似以下的內(nèi)容

          <<<<<<<<<<<<<<<
          asdfadfadfadf
          11111111111111
          =======
          asdfadfadfadf
          111111111111111
          222222222222
          >>>>>>>>>>>>>>>>

          結(jié)合別人修改的內(nèi)容和自己修改的內(nèi)容,然后把文件中 <<<<<,=====,>>>>>>>這類沖突符號去掉。去掉后,還是不 能提交的,為什么?因為沖突時會產(chǎn)生三個文件,有這三個文件存在肯定提交不了。

          客戶端用的tortoisesvn(這個估計程序員用的最多),沖突時會多產(chǎn)生,三個文件

          test.php.mine   是沖突前自己的文件

          test.php.版本號   是沖突前本地的版本文件

          test.php.服務(wù)器的版本號   是沖突后服務(wù)器版本文件

          提交的時候,把這三個文件刪除掉就可以提交了。

          3,產(chǎn)生覆蓋的原因。

          a),在修改沖突文件test.php時,把別人代碼都刪除掉了,只留下了自己的代碼。這樣就會產(chǎn)生覆蓋了。

          b),把test.php.mine中的內(nèi)容直接copytest.php文件,這樣也會產(chǎn)生代碼覆蓋。

          上面二種情況都是我親眼看到新手這樣操作的,要避免這二種操作方法。

           

          21.   合并

          svn merge test.php –r 200:205 (將版本200205之間的差異合并到當(dāng)前文件,通常會產(chǎn)生沖突,需要處理一下。)

          End.

          主站蜘蛛池模板: 大渡口区| 长阳| 肇东市| 历史| 佛山市| 黄骅市| 涟水县| 云南省| 台湾省| 辽阳县| 金坛市| 南安市| 潢川县| 英山县| 安远县| 文成县| 克什克腾旗| 南阳市| 高青县| 江陵县| 西乌珠穆沁旗| 博爱县| 长泰县| 甘德县| 铅山县| 伊宁市| 景德镇市| 绥化市| 天等县| 安义县| 轮台县| 铜山县| 巴南区| 游戏| 成武县| 乐至县| 永清县| 辽宁省| 静安区| 双鸭山市| 宿州市|