Linux svn使用方法雜記(持續更新...)

------------------------------------------------------------------------------------------------------

       此文章僅作爲學習交流所用

       轉載或引用請務必註明原文地址:

       http://blog.csdn.net/luzhenrong45/article/

       或聯繫作者:[email protected] 

       謝謝!                       

------------------------------------------------------------------------------------------------------

 

SVN 使用

1.本地更新svn服務器地址:

網上介紹使用:

svn sw --relocate svn舊地址  svn新地址
但是我使用這個命令的時候,總是提示:
svn: E155024: Invalid relocation destination: 'xxxxxxxxx' (does not point to target)

後來直接使用以下命令就成功了

svn sw  svn新地址

2. svn 解決樹衝突

提示local unversioned, incoming add upon update

D     C clock_data.c
      >   local unversioned, incoming add upon update

解決方法:

直接 svn revert clock_data.c 就行, 網上扯了一大堆,結果沒用

3. svn只checkout單個文件:

比如我要checkout的文件爲 build.sh, 所在的目錄爲 svn://www.laolu.coml/dev/Branches/Android/OS/


方式一:svn cat

缺點:相當於只是複製粘貼下來而已,並沒有由svn跟蹤,即使修改了文件,svn也識別不出來有改動

svn cat svn://www.laolu.coml/dev/Branches/Android/OS/build.sh > build.sh


方式二:svn co (推薦使用該方式)

(1)首先檢出文件所在的目錄

svn co --depth=empty svn://www.laolu.coml/dev/Branches/Android/OS/ work_dir


(2)進入work_dir目錄,單獨更新build.sh

cd work_dir
svn up build.sh

4. 一次性svn add添加所有新文件

方式一:

svn st | grep '^\?' | tr '^\?' ' ' | sed 's/[ ]*//' | sed 's/[ ]/\\ /g' | xargs svn add

方式二:

svn st | awk '{if ( $1 == "?") { print $2}}' | xargs svn add

5. svn st 只顯示修改過的文件

svn st | awk '{if ( $1 == "M") { print $2}}' 


6. linux svn 默認過濾文件列表設置

1. 打開svn默認配置文件:~/.subversion/config


2. 查找 [miscellany] 字段,即可看到下面有個 global-ignores 鍵名,默認爲註釋掉了的,這表示SVN已經將它們作爲默認值了。


3. 根據實際需要,取消註釋,比如不要過濾.a, .so,就可以把 *.so *.so.[0-9]* *.a 去掉。

7. linux svn 增加可執行權限

本地文件在commit到倉庫之前若沒有chmod +x 權限的話,那在svn倉庫裏的文件將會保持當前無可執行屬性狀態。

即使在本地chmod +x filename 之後,再提交到倉庫也是沒有用的。check out到其他目錄的時候,文件仍然沒有可執行權限,需要使用svn 設置文件屬性。

比如 build.sh 文件


svn propset svn:executable on build.sh




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章