日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

svn(subversion)代码版本管理在linux下的一些常见使用命令

發(fā)布時(shí)間:2025/4/16 linux 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 svn(subversion)代码版本管理在linux下的一些常见使用命令 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
以下的操作都是默認(rèn)你的服務(wù)器安裝有svn的大前提下進(jìn)行的。 一、創(chuàng)建版本庫(kù) 我的版本庫(kù)存放路徑為: /var/svn ; 下面我們來(lái)創(chuàng)建一個(gè)名為 svntet 的版本庫(kù)? ? 注釋: svnadmin create svntet ?就是svn的創(chuàng)建版本庫(kù)命令;執(zhí)行之后我們會(huì)發(fā)現(xiàn)? /var/svn 下會(huì)出現(xiàn) svntet 的文件夾
二、修改新建的版本庫(kù)的配置文件 進(jìn)入 /var/svn/svntet ?;我們會(huì)發(fā)現(xiàn)有3個(gè)配置文件
我們先修改下 passwd ,添加 svntet 版本庫(kù)的用戶名和密碼 修改 authz ,添加??svntet 版本庫(kù)的用戶的權(quán)限 注釋:現(xiàn)在給 ?svntet 版本庫(kù)的用戶名為 admin的用戶添加他對(duì)該版本的讀寫(xiě)權(quán)限
修改 svnserve.conf?

三、導(dǎo)入代碼文件到 svntet 版本庫(kù) 我的代碼文件存放在 /var/www/html/qinkaizhu/svntest ;? svn代碼版本庫(kù)的路徑 /var/svn/svntet (也就是剛剛我們創(chuàng)建的版本庫(kù)的位置); 執(zhí)行導(dǎo)入命令: svn import /var/www/html/qinkaizhu/svntest file:///var/svn/svntet -m "i" ? 四、從版本庫(kù)導(dǎo)出代碼 導(dǎo)出代碼到當(dāng)前目錄下;?執(zhí)行導(dǎo)出命令: svn checkout svn://192.168.1.5/svntet? 這時(shí)候,已經(jīng)從 svntet 版本庫(kù)取了最新版本的代碼
? 五、從工作的代碼拷貝提交到版本庫(kù) 如何我們沒(méi)有修改如何代碼,那么提交是沒(méi)有意義的。下面我們先來(lái)修改下1.php; cd svntet? vim 1.php ? ? ?
保存修改后,在 svntet 目錄下執(zhí)行提交命令:svn commit -m ?"cxcxcxc" 注釋:-m “msg” ?其中msg:為本次提交版本的一些描述(例如修改了什么之類(lèi)的)
六、從版本庫(kù)更新工作的代碼拷貝假如有n個(gè)人在進(jìn)行同一項(xiàng)工作,大家都是公用同一版本庫(kù),那么可能你現(xiàn)在的版本庫(kù)就不是最新的了。所以,我們需要從版本庫(kù)里更新下工作的代碼拷貝。執(zhí)行代碼:cd svntet?svn update?七、在工作的代碼拷貝新建文件或者文件夾,然后提交到版本庫(kù)1、先新建 3.php ?4.php?2、執(zhí)行加入版本控制命令:svn add 3.php 4.php
小插曲 【start】在這里注意了,經(jīng)常我們?cè)陂_(kāi)發(fā)的時(shí)候,可能會(huì)加人很多的新文件,難道我們要一個(gè)一個(gè)地加嗎?當(dāng)然,你也可以實(shí)現(xiàn)的。。但是,如果我們加的文件特別多,而且目錄結(jié)構(gòu)也特別復(fù)雜。怎么辦?svn status — 打印工作拷貝文件和目錄的狀態(tài)。我們可以借助svn status 或者 svn st快速找到新添加并沒(méi)有納入版本控制的文件。?第一列代表狀態(tài)改變的文件的狀態(tài):'?' ??項(xiàng)目不在版本控制之下;'M' ?項(xiàng)目已經(jīng)修改了;'!' ? ?項(xiàng)目已經(jīng)丟失;'~' ??項(xiàng)目作為一種對(duì)象(文件、目錄或鏈接)納入版本控制,但是已經(jīng)被另一種對(duì)象替代。更多的狀態(tài)信息,可以在這里看見(jiàn):傳送門(mén)我們利用grep篩選出不在版本控制之下的文件或者文件夾svn st | grep ?svn st | grep ? | awk '{print $2}'我們可以利用awk逐一獲取到他們的信息,現(xiàn)在我們就只需要他們的路徑就好了,然后有svn將他們加入版本控制前面是和大家一起慢慢來(lái),順便回顧下shell的一些命令使用。其實(shí)就工作備份的最外層執(zhí)行下面的代碼就可以將沒(méi)有加入版本控制的文件或者文件名加入版本控制svn status | grep ? | awk '{print $2}' | xargs svn add然后,下次執(zhí)行提交的時(shí)候,就會(huì)將新加文件提交加入到版本庫(kù)了。。。小插曲 【end】
3、再執(zhí)行提交到版本庫(kù)的命令:svn commit -m "addnewfile"注釋:執(zhí)行加入版本控制命令:svn add 3.php 4.php 后,版本庫(kù)的并沒(méi)有更新版本。直到下一次執(zhí)行?commit 才會(huì)提交更新
?八、刪除工作拷貝和版本庫(kù)的文件情況一:先在工作的拷貝刪除,在下次執(zhí)行commit命令時(shí)候,自動(dòng)從版本庫(kù)里刪除1、先執(zhí)行刪除命令:svn del 1.php 2.php2、再執(zhí)行提交命令:svn commit -m "delfile"?情況二:直接從版本庫(kù)里刪除,然后在工作拷貝下更新(update)執(zhí)行刪除命令:svn del -m "del 4.php" file:///var/svn/svntet/4.php
以上是我經(jīng)常用到的一下svn在linux的命令操作。大家在操作的時(shí)候應(yīng)該注意命令操作時(shí)候所在的當(dāng)前目錄。 例如 svn update ;svn commite,不然會(huì)導(dǎo)致一些錯(cuò)誤。
在工作拷貝中在每個(gè)目錄下都會(huì)存在.svn文件;在項(xiàng)目完成要上線的時(shí)候,我們?cè)趺礃涌焖俣紝⑺械?svn文件都刪除呢。。我們可以寫(xiě)個(gè)shell腳本來(lái)進(jìn)行刪除。 find -type d -name ".svn" | xargs rm -rf
其他常用的命令: 更新到某個(gè)版本?svn update -r m path?例如:?svn update如果后面沒(méi)有目錄,默認(rèn)將當(dāng)前目錄以及子目錄下的所有文件都更新到最新版本。?svn update -r 200 test.php(將版本庫(kù)中的文件test.php還原到版本200)?svn update test.php(更新,于版本庫(kù)同步。如果在提交的時(shí)候提示過(guò)期的話,是因?yàn)闆_突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)?簡(jiǎn)寫(xiě):svn up?
加鎖/解鎖?svn lock -m “LockMessage“ [--force] PATH?例如:svn lock -m “l(fā)ock test file“ test.php?svn unlock PATH?
查看日志?svn log path?例如:svn log test.php 顯示這個(gè)文件的所有修改記錄,及其版本號(hào)的變化?
比較差異?svn diff path(將修改的文件與基礎(chǔ)版本比較)?例如:svn diff test.php?svn diff -r m:n path(對(duì)版本m和版本n比較差異)?例如:svn diff -r 200:201 test.php?簡(jiǎn)寫(xiě):svn di?
將兩個(gè)版本之間的差異合并到當(dāng)前文件?svn merge -r m:n path?例如:svn merge -r 200:205 test.php(將版本200與205之間的差異合并到當(dāng)前文件,但是一般都會(huì)產(chǎn)生沖突,需要處理一下)?
版本庫(kù)下的文件和目錄列表?svn list path?顯示path目錄下的所有屬于版本庫(kù)的文件和目錄?簡(jiǎn)寫(xiě):svn ls?
創(chuàng)建納入版本控制下的新目錄?svn mkdir: 創(chuàng)建納入版本控制下的新目錄。?用法:?1、mkdir PATH…?2、mkdir URL…?創(chuàng)建版本控制的目錄。? 1、每一個(gè)以工作副本 PATH 指定的目錄,都會(huì)創(chuàng)建在本地端,并且加入新增?調(diào)度,以待下一次的提交。?2、每個(gè)以URL指定的目錄,都會(huì)透過(guò)立即提交于倉(cāng)庫(kù)中創(chuàng)建。?在這兩個(gè)情況下,所有的中間目錄都必須事先存在。

總結(jié)

以上是生活随笔為你收集整理的svn(subversion)代码版本管理在linux下的一些常见使用命令的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。