免费在线a视频-免费在线观看a视频-免费在线观看大片影视大全-免费在线观看的视频-色播丁香-色播基地

mac終端下svn常用命令

:2020年07月14日 cnblogs
分享到:

本文目錄一、SVN概述二、SVN服務(wù)器搭建和使用:三、使用svn客戶端功能四、使用注意事項(xiàng) 一,SVN概述* 什么是SVN(Subversion)?  答:簡(jiǎn)單的說(shuō),您可以把SVN當(dāng)成您的備份服務(wù)器,更好的是,他...

本文目錄

  • 一、SVN概述

  • 二、SVN服務(wù)器搭建和使用:

  • 三、使用svn客戶端功能

  • 四、使用注意事項(xiàng) 

一,SVN概述

* 什么是SVN(Subversion)?

  答:簡(jiǎn)單的說(shuō),您可以把SVN當(dāng)成您的備份服務(wù)器,更好的是,他可以幫您記住每次上傳到這個(gè)服務(wù)器的檔案內(nèi)容。并且自動(dòng)的賦予每次的變更一個(gè)版本。
        通常,我們稱(chēng)用來(lái)存放上傳檔案的地方就做Repository。用中文來(lái)說(shuō),有點(diǎn)像是檔案?jìng)}庫(kù)的意思。不過(guò),通常我們還是使用Repository這個(gè)名詞。
基本上,第一次我們需要有一個(gè)新增(add)檔案的動(dòng)作,將想要備份的檔案放到Repository上面。日后,當(dāng)您有任何修改時(shí),都可以上傳到Repository上面,上傳已經(jīng)存在且修改過(guò)的檔案就叫做commit,也就是提交修改給SVN server的意思。針對(duì)每次的commit,SVN server都會(huì)賦予他一個(gè)新的版本。同時(shí),也會(huì)把每次上傳的時(shí)間記錄下來(lái)。日后,因?yàn)槟承┮蛩?,如果您需要從Repository下載曾經(jīng)提交的檔案。您可以直接選擇取得最新的版本,也可以取得任何一個(gè)之前的版本。如果忘記了版本,還是可以靠記憶嘗試取得某個(gè)日期的版本。

* 版本庫(kù)布局

1. trunk主干

   trunk就是開(kāi)發(fā)的主線,一般項(xiàng)目都是導(dǎo)入到主線來(lái)開(kāi)發(fā)的。

2. branches分支

   branches一般是trunk某個(gè)版本的拷貝,如果你想在某一段時(shí)間單獨(dú)對(duì)某個(gè)功能進(jìn)行開(kāi)發(fā),而不像和其它功能混在一起,這時(shí)候branches是一個(gè)很好用的方式。你不會(huì)想 在trunk里一直開(kāi)發(fā)這個(gè)功能,不提交,直到開(kāi)發(fā)完成吧。一般也會(huì)合并的trunk中的。

3. tags標(biāo)簽

    tags就是標(biāo)簽,顧名思義,就是某個(gè)版本的記錄啦,就好像看一本厚厚的,看到哪一頁(yè)了,做個(gè)記號(hào),方便以后查閱。 

迭代開(kāi)發(fā)時(shí),在某個(gè)版本發(fā)布應(yīng)用,為了做個(gè)記錄,這時(shí)候打個(gè)tag很實(shí)用。發(fā)布后,線上出現(xiàn)了一個(gè)bug,可以根據(jù)這個(gè)tag進(jìn)行修復(fù)再發(fā)版本。

二,SVN服務(wù)器搭建和使用:

*   創(chuàng)建代碼倉(cāng)庫(kù)(用來(lái)存儲(chǔ)客戶端所上傳的代碼)

 第一步:我們先在文稿目錄(~/Documents)下創(chuàng)建新建一個(gè) svn 目錄,后面我們會(huì)把多個(gè)倉(cāng)庫(kù)目錄都放在這里面。
      


                                                                                                               圖一
      

                                                                                                               圖二

     第二步:打開(kāi)終端,執(zhí)行如下命令,創(chuàng)建一個(gè)名為 TestCode的倉(cāng)庫(kù)。

1
svnadmin create /Users/liangxiaolong/Documents/SVN/TestCode


                                                                                                              圖三

倉(cāng)庫(kù)里的目錄結(jié)構(gòu)如下
                                                  


                                                                                                              圖四

*  配置用戶權(quán)限

    在 svn/TestCode/conf 文件夾中有如下文件,我們需要分別進(jìn)行修改。
                                                  

                                                                                                              圖五
     第一步:打開(kāi)svnserve.conf,將下列配置項(xiàng)前面的#和空格都去掉
                                                          

                                                                                                                圖六

注意: anon-access = read代表匿名訪問(wèn)的時(shí)候是只讀的,若改為anon-access = none代表禁止匿名訪問(wèn),需要帳號(hào)密碼才能訪問(wèn)
    第二步:修改 passwd。在 [users]下面添加帳號(hào)和密碼(這里我配置了兩個(gè)用戶)
                                         

                                                                                                               圖七

備注:# liangxiaolong(賬號(hào)) = liangxiaolong(密碼)

   第三步:打開(kāi)authz,配置用戶組和權(quán)限

         我們可以將在passwd里添加的用戶分配到不同的用戶組里,以后的話,就可以對(duì)不同用戶組設(shè)置不同的權(quán)限,沒(méi)有必要對(duì)每個(gè)用戶進(jìn)行單獨(dú)設(shè)置權(quán)限。

         在[groups]下面添加組名和用戶名,多個(gè)用戶之間用逗號(hào)(,)隔開(kāi)

1
2
[groups]
topgroup=mj,jj

         說(shuō)明mj和jj都是屬于topgroup這個(gè)組的,接下來(lái)再進(jìn)行權(quán)限配置。

         使用[/]代表svn服務(wù)器中的所有資源庫(kù)

1
2
[/]
@topgroup=rw

         上面的配置說(shuō)明topgroup這個(gè)組中的所有用戶對(duì)所有資源庫(kù)都有讀寫(xiě)(rw)權(quán)限,組名前面要用@

          如果是用戶名,不用加@,比如mj這個(gè)用戶有讀寫(xiě)權(quán)限

1
2
[/]
mj=rw

         而topgroup分組的用戶只有對(duì) code1 有讀寫(xiě)權(quán)限。

1
[/code1]<br>      @topgroup = liangxiaolong

 * 啟動(dòng)svn服務(wù)器

      前面配置了這么多,最關(guān)鍵還是看能否正常啟動(dòng)服務(wù)器,若啟動(dòng)不來(lái),前面做再多工作也是徒勞。
在終端輸入下列指令:

1
svnserve -d -r /Users/liangxiaolong/Documents/SVN/

或者輸入:

1
svnserve -d -r /Users/liangxiaolong/Documents/SVN/TestCode

沒(méi)有任何提示就說(shuō)明啟動(dòng)成功了

* 停止svn服務(wù)器

1
打開(kāi)“活動(dòng)監(jiān)視器” 。搜索 svn,將進(jìn)程強(qiáng)制退出即可。

三、使用svn客戶端功能

以下是一些常用命令

1、從本地導(dǎo)入代碼到服務(wù)器(第一次初始化導(dǎo)入)

在終端中輸入

 svn import /Users/apple/Documents/eclipse_workspace/weibo svn://localhost/mycode/weibo --username=mj --password=123 -m "初始化導(dǎo)入"

指令的意思:將/Users/apple/Documents/eclipse_workspace/weibo中的所有內(nèi)容,上傳到服務(wù)器mycode倉(cāng)庫(kù)的weibo目錄下,后面雙引號(hào)中的"初始化導(dǎo)入"是注釋

2、從服務(wù)器端下載代碼到客戶端本地

在終端中輸入

1
svn checkout svn://localhost/mycode --username=mj --password=123 /Users/apple/Documents/code

指令的意思:將服務(wù)器中mycode倉(cāng)庫(kù)的內(nèi)容下載到/Users/apple/Documents/code目錄中
簡(jiǎn)寫(xiě):

1
svn co svn://localhost/mycode --username=mj --password=123 /Users/apple/Documents/code

注意:
 * 如果不帶--password 參數(shù)傳輸密碼的話,會(huì)提示輸入密碼,建議不要用明文的--password 選項(xiàng)。
 * 其中 username 與 password前是兩個(gè)短線,不是一個(gè)。
 * 不指定本地目錄全路徑,則檢出到當(dāng)前目錄下。
3.提交更改過(guò)的代碼到服務(wù)器

在步驟2中已經(jīng)將服務(wù)器端的代碼都下載到/Users/apple/Documents/code目錄中,現(xiàn)在修改下里面的一些代碼,然后提交這些修改到服務(wù)器

1> 打開(kāi)終端,先定位到/Users/apple/Documents/code目錄,輸入:cd /Users/apple/Documents/code

2> 輸入提交指令:svn commit -m "修改了main.m文件"

這個(gè)指令會(huì)將/Users/apple/Documents/code下的所有修改都同步到服務(wù)器端,假如這次我只修改了main.文件

可以看到終端的打印信息:

1
2
3
Sending        weibo/weibo/main.m
Transmitting file data .
Committed revision

必須帶上-m參數(shù),參數(shù)可以為空,但是必須寫(xiě)上-m
例子:
svn commit -m “提交當(dāng)前目錄下的全部在版本控制下的文件“ * <- 注意這個(gè)*表示全部文件
svn commit -m “提交我的測(cè)試用test.php“ test.php
svn commit -m “提交我的測(cè)試用test.php“ -N --no-unlock test.php <- 保持鎖就用–no-unlock開(kāi)關(guān)
svn ci -m “提交當(dāng)前目錄下的全部在版本控制下的文件“ * <- 注意這個(gè)*表示全部文件
svn ci -m “提交我的測(cè)試用test.php“ test.php
svn ci -m “提交我的測(cè)試用test.php“ -N --no-unlock test.php <- 保持鎖就用–no-unlock開(kāi)關(guān)

4、導(dǎo)出(導(dǎo)出一個(gè)干凈的不帶.svn文件夾的目錄樹(shù))
svn  export  [-r 版本號(hào)]  http://路徑(目錄或文件的全路徑) [本地目錄全路徑] --username 用戶名
svn  export  [-r 版本號(hào)]  svn://路徑(目錄或文件的全路徑) [本地目錄全路徑] --username 用戶名
svn  export  本地檢出的(即帶有.svn文件夾的)目錄全路徑  要導(dǎo)出的本地目錄全路徑
注:第一種從版本庫(kù)導(dǎo)出干凈工作目錄樹(shù)的形式是指定URL,
   如果指定了修訂版本號(hào),會(huì)導(dǎo)出相應(yīng)的版本,
   如果沒(méi)有指定修訂版本,則會(huì)導(dǎo)出最新的,導(dǎo)出到指定位置。
   如果省略 本地目錄全路徑,URL的最后一部分會(huì)作為本地目錄的名字。
  第二種形式是指定 本地檢出的目錄全路徑 到 要導(dǎo)出的本地目錄全路徑,所有的本地修改將會(huì)保留,
   但是不在版本控制下(即沒(méi)提交的新文件,因?yàn)?svn文件夾里沒(méi)有與之相關(guān)的信息記錄)的文件不會(huì)拷貝。
例子:
svn export svn://localhost/測(cè)試工具 /home/testtools --username wzhnsc
svn export svn://localhost/test/testapp --username wzhnsc
svn export /home/testapp /home/testtools
5、添加新文件 

1
svn add 文件名

注:告訴SVN服務(wù)器要添加文件了,還要用svn commint -m真實(shí)的上傳上去!
例子:
svn add test.php <- 添加test.php 
svn commit -m “添加我的測(cè)試用test.php“ test.php
svn add *.php <- 添加當(dāng)前目錄下所有的php文件
svn commit -m “添加我的測(cè)試用全部php文件“ *.php

6、更新文件

1
2
3
svn update
svn update -r 修正版本 文件名
svn update 文件名

例子:
svn update <- 后面沒(méi)有目錄,默認(rèn)將當(dāng)前目錄以及子目錄下的所有文件都更新到最新版本
svn update -r 200 test.cpp <- 將版本庫(kù)中的文件 test.cpp 還原到修正版本(revision)200
svn update test.php <- 更新與版本庫(kù)同步。
            提交的時(shí)候提示過(guò)期沖突,需要先 update 修改文件,
            然后清除svn resolved,最后再提交commit。
7、刪除文件

1
2
3
4
svn delete svn://路徑(目錄或文件的全路徑) -m “刪除備注信息文本”
推薦如下操作:
svn delete 文件名
svn ci -m “刪除備注信息文本”

例子:
svn delete svn://localhost/testapp/test.php -m “刪除測(cè)試文件test.php”
推薦如下操作:

1
2
svn delete test.php
svn ci -m “刪除測(cè)試文件test.php”

8、加鎖/解鎖 

1
2
svn lock -m “加鎖備注信息文本“ [--force] 文件名
svn unlock 文件名

例子:
svn lock -m “鎖信測(cè)試用test.php文件“ test.php 
svn unlock test.php
9、比較差異 

1
2
svn diff 文件名
svn diff -r 修正版本號(hào)m:修正版本號(hào)n 文件名

例子:
svn diff test.php   <-將修改的文件與基礎(chǔ)版本比較
svn diff -r 200:201 test.php <- 對(duì) 修正版本號(hào)200 和 修正版本號(hào)201 比較差異
10、查看文件或者目錄狀態(tài)

1
2
3
4
5
6
7
8
svn st 目錄路徑/名
svn status 目錄路徑/名<- 目錄下的文件和子目錄的狀態(tài),正常狀態(tài)不顯示
             【?:不在svn的控制中;  M:內(nèi)容被修改;C:發(fā)生沖突;
              A:預(yù)定加入到版本庫(kù);K:被鎖定】
svn  -v 目錄路徑/名
svn status -v 目錄路徑/名<- 顯示文件和子目錄狀態(tài)
              【第一列保持相同,第二列顯示工作版本號(hào),
               第三和第四列顯示最后一次修改的版本號(hào)和修改人】

注:svn status、svn diff和 svn revert這三條命令在沒(méi)有網(wǎng)絡(luò)的情況下也可以執(zhí)行的,
  原因是svn在本地的.svn中保留了本地版本的原始拷貝。 
11、查看日志

1
svn log 文件名

例子:
svn log test.php<- 顯示這個(gè)文件的所有修改記錄,及其版本號(hào)的變化 
12、查看文件詳細(xì)信息

1
svn info 文件名

例子:
svn info test.php
13、SVN 幫助

1
2
svn help <- 全部功能選項(xiàng)
svn help ci <- 具體功能的說(shuō)明

14、查看版本庫(kù)下的文件和目錄列表 

1
2
svn list svn://路徑(目錄或文件的全路徑)
svn ls svn://路徑(目錄或文件的全路徑)

例子:

1
2
svn list svn://localhost/test
svn ls svn://localhost/test <- 顯示svn://localhost/test目錄下的所有屬于版本庫(kù)的文件和目錄

15、創(chuàng)建納入版本控制下的新目錄

1
2
svn mkdir 目錄名
svn mkdir -m "新增目錄備注文本" http://目錄全路徑

例子:

1
2
svn mkdir newdir
svn mkdir -m "Making a new dir." svn://localhost/test/newdir

注:添加完子目錄后,一定要回到根目錄更新一下,不然在該目錄下提交文件會(huì)提示“提交失敗”

1
svn update


注:如果手工在checkout出來(lái)的目錄里創(chuàng)建了一個(gè)新文件夾newsubdir,
  再用svn mkdir newsubdir命令后,
      SVN會(huì)提示
  svn: 嘗試用 “svn add”或 “svn add --non-recursive”代替?
  svn: 無(wú)法創(chuàng)建目錄“hello”: 文件已經(jīng)存在
  此時(shí),用如下命令解決:

1
svn add --non-recursive newsubdir

  在進(jìn)入這個(gè)newsubdir文件夾,用ls -a查看它下面的全部目錄與文件,會(huì)發(fā)現(xiàn)多了:.svn目錄
  再用 svn mkdir -m "添hello功能模塊文件" svn://localhost/test/newdir/newsubdir 命令,
  SVN提示
  svn: File already exists: filesystem '/data/svnroot/test/db', transaction '4541-1',
  path '/newdir/newsubdir '
16、恢復(fù)本地修改 

1
svn revert [--recursive] 文件名

注意: 本子命令不會(huì)存取網(wǎng)絡(luò),并且會(huì)解除沖突的狀況。但是它不會(huì)恢復(fù)被刪除的目錄。
例子:

1
2
svn revert foo.c <- 丟棄對(duì)一個(gè)文件的修改
svn revert --recursive . <-恢復(fù)一整個(gè)目錄的文件,. 為當(dāng)前目錄

17、把工作拷貝更新到別的URL 

1
svn switch http://目錄全路徑 本地目錄全路徑

例子:

1
svn switch http://localhost/test/456 . <- (原為123的分支)當(dāng)前所在目錄分支到localhost/test/456

18、解決沖突 

1
svn resolved [本地目錄全路徑]

例子:

1
2
3
$ svn update
C foo.c
Updated to revision 31.

如果你在更新時(shí)得到?jīng)_突,你的工作拷貝會(huì)產(chǎn)生三個(gè)新的文件:
$ ls
foo.c
foo.c.mine
foo.c.r30
foo.c.r31
當(dāng)你解決了foo.c的沖突,并且準(zhǔn)備提交,運(yùn)行svn resolved讓你的工作拷貝知道你已經(jīng)完成了所有事情。
你可以僅僅刪除沖突的文件并且提交,但是svn resolved除了刪除沖突文件,還修正了一些記錄在工作拷貝管理區(qū)域的記錄數(shù)據(jù),所以我們推薦你使用這個(gè)命令。
19、不checkout而查看輸出特定文件或URL的內(nèi)容 

1
svn cat http://文件全路徑

例子:

1
svn cat http://localhost/test/readme.txt

20、新建一個(gè)分支copy

1
svn copy branchA branchB  -m "make B branch" // 從branchA拷貝出一個(gè)新分支branchB

21、合并內(nèi)容到分支merge

1
svn merge branchA branchB  // 把對(duì)branchA的修改合并到分支branchB
[我要糾錯(cuò)]
[ 編輯:宋聰喬 &發(fā)表于江蘇 ]
關(guān)鍵詞: 本文 目錄 概述 服務(wù)器 建和

來(lái)源:本文內(nèi)容搜集或轉(zhuǎn)自各大網(wǎng)絡(luò)平臺(tái),并已注明來(lái)源、出處,如果轉(zhuǎn)載侵犯您的版權(quán)或非授權(quán)發(fā)布,請(qǐng)聯(lián)系小編,我們會(huì)及時(shí)審核處理。
聲明:江蘇教育黃頁(yè)對(duì)文中觀點(diǎn)保持中立,對(duì)所包含內(nèi)容的準(zhǔn)確性、可靠性或者完整性不提供任何明示或暗示的保證,不對(duì)文章觀點(diǎn)負(fù)責(zé),僅作分享之用,文章版權(quán)及插圖屬于原作者。

點(diǎn)個(gè)贊
0
踩一腳
0

您在閱讀:mac終端下svn常用命令

Copyright©2013-2025 ?JSedu114 All Rights Reserved. 江蘇教育信息綜合發(fā)布查詢平臺(tái)保留所有權(quán)利

蘇公網(wǎng)安備32010402000125 蘇ICP備14051488號(hào)-3技術(shù)支持:南京博盛藍(lán)睿網(wǎng)絡(luò)科技有限公司

南京思必達(dá)教育科技有限公司版權(quán)所有   百度統(tǒng)計(jì)

主站蜘蛛池模板: 成人狠狠色综合 | 久久网色 | 日韩免费观看视频 | 午夜影院污 | 亚洲 欧美 日韩 综合 | 免费网站看v片在线成人国产系列 | 在线看欧美日韩中文字幕 | 国产亚洲精品成人久久网站 | 欧美国产精品不卡在线观看 | 欧美日韩片 | 免费精品精品国产欧美在线 | 老司机在线永久免费视频观看 | 日韩资源 | 老司机亚洲精品影院 | 国产精品2022最新在线观看 | 有没有在线看片www 又www又黄又爽啪啪网站 | 欧美色图偷窥自拍 | 国产精品一区二区不卡的视频 | 黄色毛片播放 | 中文字幕亚洲综合久久202 | 欧美一区二区三区网站 | 亚洲五月激情综合图片区 | 国产成人综合亚洲 | 最近中文字幕大全 | 日韩免费一级a毛片在线播放一级 | 中文字幕在线观看2019 | 91精品在线国产 | 天天碰免费视频 | 欧美不卡激情三级在线观看 | 欧美日韩视频在线第一区二区三区 | 日本一道本视频 | 日韩午夜视频在线观看 | 免费毛片a线观看 | 日本三级网络 | 日本插插视频 | 新26uuu在线亚洲欧美 | 香蕉亚洲欧洲在线一区 | 日韩成人精品 | 色一级 | 99精品视频在线观看免费 | 日韩欧美中国a v |
最熱文章
最新文章
  • 阿里云上云鉅惠,云產(chǎn)品享最低成本,有需要聯(lián)系,
  • 卡爾蔡司鏡片優(yōu)惠店,鏡片價(jià)格低
  • 蘋(píng)果原裝手機(jī)殼