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

mac終端下svn常用命令

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

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

本文目錄

  • 一、SVN概述

  • 二、SVN服務器搭建和使用:

  • 三、使用svn客戶端功能

  • 四、使用注意事項 

一,SVN概述

* 什么是SVN(Subversion)?

  答:簡單的說,您可以把SVN當成您的備份服務器,更好的是,他可以幫您記住每次上傳到這個服務器的檔案內容。并且自動的賦予每次的變更一個版本。
        通常,我們稱用來存放上傳檔案的地方就做Repository。用中文來說,有點像是檔案倉庫的意思。不過,通常我們還是使用Repository這個名詞。
基本上,第一次我們需要有一個新增(add)檔案的動作,將想要備份的檔案放到Repository上面。日后,當您有任何修改時,都可以上傳到Repository上面,上傳已經存在且修改過的檔案就叫做commit,也就是提交修改給SVN server的意思。針對每次的commit,SVN server都會賦予他一個新的版本。同時,也會把每次上傳的時間記錄下來。日后,因為某些因素,如果您需要從Repository下載曾經提交的檔案。您可以直接選擇取得最新的版本,也可以取得任何一個之前的版本。如果忘記了版本,還是可以靠記憶嘗試取得某個日期的版本。

* 版本庫布局

1. trunk主干

   trunk就是開發的主線,一般項目都是導入到主線來開發的。

2. branches分支

   branches一般是trunk某個版本的拷貝,如果你想在某一段時間單獨對某個功能進行開發,而不像和其它功能混在一起,這時候branches是一個很好用的方式。你不會想 在trunk里一直開發這個功能,不提交,直到開發完成吧。一般也會合并的trunk中的。

3. tags標簽

    tags就是標簽,顧名思義,就是某個版本的記錄啦,就好像看一本厚厚的,看到哪一頁了,做個記號,方便以后查閱。 

迭代開發時,在某個版本發布應用,為了做個記錄,這時候打個tag很實用。發布后,線上出現了一個bug,可以根據這個tag進行修復再發版本。

二,SVN服務器搭建和使用:

*   創建代碼倉庫(用來存儲客戶端所上傳的代碼)

 第一步:我們先在文稿目錄(~/Documents)下創建新建一個 svn 目錄,后面我們會把多個倉庫目錄都放在這里面。
      


                                                                                                               圖一
      

                                                                                                               圖二

     第二步:打開終端,執行如下命令,創建一個名為 TestCode的倉庫。

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


                                                                                                              圖三

倉庫里的目錄結構如下
                                                  


                                                                                                              圖四

*  配置用戶權限

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

                                                                                                              圖五
     第一步:打開svnserve.conf,將下列配置項前面的#和空格都去掉
                                                          

                                                                                                                圖六

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

                                                                                                               圖七

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

   第三步:打開authz,配置用戶組和權限

         我們可以將在passwd里添加的用戶分配到不同的用戶組里,以后的話,就可以對不同用戶組設置不同的權限,沒有必要對每個用戶進行單獨設置權限。

         在[groups]下面添加組名和用戶名,多個用戶之間用逗號(,)隔開

1
2
[groups]
topgroup=mj,jj

         說明mj和jj都是屬于topgroup這個組的,接下來再進行權限配置。

         使用[/]代表svn服務器中的所有資源庫

1
2
[/]
@topgroup=rw

         上面的配置說明topgroup這個組中的所有用戶對所有資源庫都有讀寫(rw)權限,組名前面要用@

          如果是用戶名,不用加@,比如mj這個用戶有讀寫權限

1
2
[/]
mj=rw

         而topgroup分組的用戶只有對 code1 有讀寫權限。

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

 * 啟動svn服務器

      前面配置了這么多,最關鍵還是看能否正常啟動服務器,若啟動不來,前面做再多工作也是徒勞。
在終端輸入下列指令:

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

或者輸入:

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

沒有任何提示就說明啟動成功了

* 停止svn服務器

1
打開“活動監視器” 。搜索 svn,將進程強制退出即可。

三、使用svn客戶端功能

以下是一些常用命令

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

在終端中輸入

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

指令的意思:將/Users/apple/Documents/eclipse_workspace/weibo中的所有內容,上傳到服務器mycode倉庫的weibo目錄下,后面雙引號中的"初始化導入"是注釋

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

在終端中輸入

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

指令的意思:將服務器中mycode倉庫的內容下載到/Users/apple/Documents/code目錄中
簡寫:

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

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

在步驟2中已經將服務器端的代碼都下載到/Users/apple/Documents/code目錄中,現在修改下里面的一些代碼,然后提交這些修改到服務器

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

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

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

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

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

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

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

1
svn add 文件名

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

6、更新文件

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

例子:
svn update <- 后面沒有目錄,默認將當前目錄以及子目錄下的所有文件都更新到最新版本
svn update -r 200 test.cpp <- 將版本庫中的文件 test.cpp 還原到修正版本(revision)200
svn update test.php <- 更新與版本庫同步。
            提交的時候提示過期沖突,需要先 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 “刪除測試文件test.php”
推薦如下操作:

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

8、加鎖/解鎖 

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

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

1
2
svn diff 文件名
svn diff -r 修正版本號m:修正版本號n 文件名

例子:
svn diff test.php   <-將修改的文件與基礎版本比較
svn diff -r 200:201 test.php <- 對 修正版本號200 和 修正版本號201 比較差異
10、查看文件或者目錄狀態

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

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

1
svn log 文件名

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

1
svn info 文件名

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

1
2
svn help <- 全部功能選項
svn help ci <- 具體功能的說明

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

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

例子:

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

15、創建納入版本控制下的新目錄

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

例子:

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

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

1
svn update


注:如果手工在checkout出來的目錄里創建了一個新文件夾newsubdir,
  再用svn mkdir newsubdir命令后,
      SVN會提示
  svn: 嘗試用 “svn add”或 “svn add --non-recursive”代替?
  svn: 無法創建目錄“hello”: 文件已經存在
  此時,用如下命令解決:

1
svn add --non-recursive newsubdir

  在進入這個newsubdir文件夾,用ls -a查看它下面的全部目錄與文件,會發現多了:.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、恢復本地修改 

1
svn revert [--recursive] 文件名

注意: 本子命令不會存取網絡,并且會解除沖突的狀況。但是它不會恢復被刪除的目錄。
例子:

1
2
svn revert foo.c <- 丟棄對一個文件的修改
svn revert --recursive . <-恢復一整個目錄的文件,. 為當前目錄

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

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

例子:

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

18、解決沖突 

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

例子:

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

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

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

例子:

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

20、新建一個分支copy

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

21、合并內容到分支merge

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

來源:本文內容搜集或轉自各大網絡平臺,并已注明來源、出處,如果轉載侵犯您的版權或非授權發布,請聯系小編,我們會及時審核處理。
聲明:江蘇教育黃頁對文中觀點保持中立,對所包含內容的準確性、可靠性或者完整性不提供任何明示或暗示的保證,不對文章觀點負責,僅作分享之用,文章版權及插圖屬于原作者。

點個贊
0
踩一腳
0

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

Copyright©2013-2025 ?JSedu114 All Rights Reserved. 江蘇教育信息綜合發布查詢平臺保留所有權利

蘇公網安備32010402000125 蘇ICP備14051488號-3技術支持:南京博盛藍睿網絡科技有限公司

南京思必達教育科技有限公司版權所有   百度統計

主站蜘蛛池模板: 欧美一级视频在线高清观看 | 97色在线观看免费视频 | 在线亚洲国产精品区 | 久久综合九色综合97小说 | 日本一区高清 | 成人在线视频免费 | 亚洲成人视屏 | 日韩在线一区二区三区免费视频 | 国产成人影院在线观看 | 国产精品福利久久2020 | 免费看h片网站 | 最好看的中文字幕2019免费 | 日韩亚洲一区二区三区 | 涩涩亚洲 | 亚洲一区二区三 | 国产99在线播放免费 | 极品色在线精品视频 | 成人免费观看在线网址 | 免费一级在线 | 在线中文字日产区乱码 | 热e国产 | 16欧美freesex呦交hd | 中文字幕在线视频免费 | 精品日韩| 一级一片一_级一片一 | 欧美日韩国产一区二区三区 | 在线国产视频一区 | 成年片人免费www | 嘿嘿午夜| jizzjizz老师太多水日本 | 国产伦精品一区二区三区免费 | 五月香婷婷 | 一级做a爰片性色毛片黄书 一级做a爰片性色毛片16美国 | 日本老年人精品久久中文字幕 | 国产成人毛片精品不卡在线 | 无遮挡h肉动漫在线播放内衣 | 一区二区三区欧美日韩国产 | 日本免费不卡 | 特级全黄一级毛片免费 | freexxx性亚洲xxxx | 黄色a级毛片 |
最熱文章
最新文章
  • 阿里云上云鉅惠,云產品享最低成本,有需要聯系,
  • 卡爾蔡司鏡片優惠店,鏡片價格低
  • 蘋果原裝手機殼