使用SVN的8個技巧
1. 使用SVN鉤子強制提交註釋
一個好的SVN實踐是檔案提交時要求必須填寫註釋,並註明相關修改資訊,如bug號、任務描述等,內容按照約定編寫。這樣在後期的程式碼稽核和回溯過程中會非常方便,可以更快的定位到具體程式碼的修改記錄。
所謂SVN鉤子就是一些與版本庫事件發生時觸發的程式,例如新修訂版本的建立,或者是未版本化屬性的修改。目前subversion提供瞭如下幾種鉤子:start-commit
、pre-commit
、post-commit
、pre-unlock
、post-unlock
、pre-lock
、post-lock
、pre-revprop-change
和post-revprop-change
post-commit
指令碼即可實現強制提交註釋的功能。
如下是一個實現強制提交註釋的post-commit
指令碼例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
REPOS= "$1"
TXN= "$2"
#
Make sure that the log message contains some text.
SVNLOOK= /usr/bin/svnlook
LOGMSG=`$SVNLOOK
log -t "$TXN" "$REPOS" |
wc -m`
if [ "$LOGMSG" -lt
4 ]
then
echo "拜託,寫點註釋吧!" 1>&2
exit 1
fi
exit 0
|
2. 建立本地倉庫
有時候我們在沒有網路的情況下無法連線外網上的SVN倉庫,或者沒有條件搭建SVN服務,這時我們同樣可以使用SVN管理我們自己的程式碼。我們可以使用TortoiseSVN在本地建立程式碼倉庫,並進行程式碼的版本管理。具體步驟如下:
- 新建一個空資料夾,用於存放本地的程式碼倉庫;
- 在這個空資料夾上點選右鍵 -> TortoiseSVN -> Create Respository here,建立倉庫;
- 在另一個目錄Checkout,本地SVN路徑格式類似於:file:///C:\Repo
3. SVN命令列操作
在Windows系統中TortoiseSVN是進行SVN程式碼管理的最佳利器,操作也非常簡單方便。但是在一些特殊環境下,熟悉SVN命令列操作也是必須的,譬如想在一些自動化指令碼程式中使用SVN的功能。 這裡總結一些常用命令如下,更多命令請訪問後面的參考連結:
(1) 從版本庫獲取資訊
- svn help
- svn info $url
- svn list
- svn log
- svn diff
(2) 從版本庫到本地
- svn [co|checkout] $url $local
- svn export $url $local
- svn [up|update]
(3) 從本地到版本庫
- svn import $local $url -m "some comments..."
- svn add $file
- svn delete $file
- svn mv $oldfile $newfile
- svn rm $url
- svn [ci|commit]
- svn revert $file 和 svn revert -R $dir
4. 更換版本比較工具
在進行SVN提交時需要非常謹慎,每次提交之前應先做SVN更新或與資源庫同步,要特別注意SVN關於衝突和錯誤的提示資訊。對每個提交的檔案進行多次檢查,確認它們是不是你真正想要提交的。
在提交的檔案上選擇Compare
with base
可以將原生代碼和版本庫中的程式碼進行比較,確保修改的內容無誤。TortoiseSVN預設使用自帶的TortoiseMerge工具進行程式碼比較,也可以更換其他的程式碼比較工具:在TortoiseSVN -> Settings -> Diff Viewer選項中找到Configure
the program used for comparing different revisions of files
,選擇External
,然後選擇你喜歡的比較工具,如:Beyond
Compare。
5. SVN伺服器遷移
這條其實並不算SVN技巧,但是在我們日常工作中確實經常會遇到這樣的情況,想將一臺SVN伺服器上的倉庫遷移到另一臺伺服器。如果SVN伺服器是一臺Windows伺服器,可以直接將SVN倉庫目錄複製到新伺服器上,然後在新伺服器上重啟SVN服務即可。如果SVN伺服器是linux伺服器,可以通過下面的命令操作,將一臺伺服器上的目錄拷貝到另一臺伺服器。
1 2 |
$ scp -r
[email protected]: /home/svn /home/svn
$
svnserve -d -r /home/svn
|
在TortoiseSVN客戶端,需要更新SVN地址:右鍵 -> TortoiseSVN -> Relocate...
6. svn:ignore
我們在用SVN提交程式碼時,常常有一些檔案未版本化並且也不想提交,所以在提交時根本不想看到這些檔案,譬如類似於Visual Studio工程的bin obj目錄。
可以使用 svn propset
svn:ignore
命令來將某個檔案或目錄新增到忽略列表中。可以在下面的連結中找到一些常見的ignore檔案:Best
general SVN Ignore Pattern?
7. SVN目錄結構
Subversion有一個標準的目錄結構,如下所示:
1 2 3 4 5 |
|
+-
trunck
+-
branches
+-
tags
|
其中,trunk為主開發目錄,branches為分支開發目錄,tags為tag存檔目錄(不允許修改)。這幾個目錄具體怎麼使用,svn並沒有明確規範,一般有兩種方式:trunk作為主開發目錄或者trunk作為釋出目錄。
8. SVN使用原則
- 程式碼變更及時提交,避免本地修改後無法修復;
- 提交前確認程式碼可編譯通過,保證新增的檔案同時被提交;
- 不要將格式修正和程式碼修改混合提交。修正格式包括增加縮排、減少空格等,如果把這些和程式碼修改一起提交,很難從日誌資訊中發現程式碼修正記錄;
- 每次提交儘量是一個最小粒度的修改,如果一次提交涉及到兩個完全不同的功能,那麼分兩次提交,並在註釋中寫清楚提交內容;
- 所有程式碼檔案使用UTF-8格式;
- 提交的檔案必須是開發者公用的程式檔案,不要提交私人測試程式、程式快取、圖片快取、自動生成的檔案等。
參考
相關推薦
分針網——每日分享:網站易用性的解讀及提高易用性幾個技巧
什麽是網站易用性? 引用維基百科上對易用性的解釋:易用性(usability)是一種以使用者為中心的設計概念,易用性設計的重點在於讓產品的設計能夠符合使用者的習慣與需求。以因特網網站的設計為例,希望讓使用者在瀏覽的過程中不會產生壓力或
提升 Web開發性能的5個技巧
web開發性能 如何提升web開發性能 提升web開發性能 web開發性能提升技巧 作為web前端人員,都會想著該怎麽進步web前端的開發功能,那咱們該怎麽進步自己的技能呢?今天北京網站建造就和我們說說進步web開發功能的5個竅門。1. 采用反向代理服務器(Reverse Proxy Serv
50個技巧提高你的PHP網站程序執行效率
運用 絕對路徑 顯示 ase each follow 程序 zend feof 1、用單引號代替雙引號來包含字符串,這樣做會更快一些。因為PHP手冊中說echo是語言結構,不是真正的函數,故 把函數加上了雙引號)。 2、如果能將類的方法定義成static,就盡量定義成sta
6個技巧加速你的gradle編譯
head 再次 spl ges 預編譯 src rtu cdn url 近期我們都在討論build系統,我們看了一些技巧能夠讓你的Maven build更快。結論和反映都勢不可擋。由於我們提供的技巧,很多其它的人都非常高興能加快他們完畢自己的項目。如今,
嵌入式系統常用的7個技巧
淩陽教育 嵌入式系統 從規範完善的開發周期到嚴格執行和系統檢查,開發高可靠性嵌入式系統的技術有許多種。淩陽教育的小編就給大家說一說我所在各個平臺看到的7個比較好操作且可以長久使用的技巧,它們對於確保系統更加可靠地運行並捕獲異常行為大有幫助 技巧1——用已知值填充ROM 軟
小白必看 學習PHP的6個步驟10個技巧
php 教程 在這個終身學習的時代,資訊泛濫的時代,我們需要的能力並不是去背誦相應的知識點,而是掌握學習方式。學習PHP也是如此,有時候技巧和步驟比埋頭苦幹要有效得多。下面小編就和大家分享一下學習PHP的6個步驟(僅僅是簡單概括)和10個技巧。 1、首先需要熟悉HTML/CSS/JS等網頁基本元素,完
高性能 Java 持久化的 14 個技巧
數據庫查詢 manytoone 匹配 int event overflow 主從復制 stat 響應時間 一個高性能的數據訪問層需要大量關於數據庫內部、JDBC、JPA、Hibernate的知識,本文總結了一些可用來優化企業應用程序的重要的技術。 1. SQL語句日誌
提升 Web開發性能的 10 個技巧
例如 internet nginx 數據庫 出了 sta local 延遲 jpg 隨著網絡的高速發展,網絡性能的持續提高成為能否在蕓蕓App中脫穎而出的關鍵。高度聯結的世界意味著用戶對網絡體驗提出了更嚴苛的要求。假如你的網站不能做到快速響應,又或你的App存在延遲,用戶很
Apache配置的5個技巧
速度 器) mode 數量 nfs 指示 因此 htpasswd sin AcceptMutex Apache 1.3.21和Apache 2.0中引入了AcceptMutex 指示符,該指示符給調節服務器的性能帶來了一個難得的機會。該指示符配置Apache的accep
Java數據庫設計14個技巧
綜合 標識 現象 數字 行程 -- 安全 其他 相對 Java數據庫設計14個技巧 1. 原始單據與實體之間的關系 可以是一對一、一對多、多對多的關系。在一般情況下,它們是一對一的關系:即一張原始單據對應且只對應一個實體。在特殊情況下,它們可能是一對多或多對一的關
Linux運維常見故障排查和處理的33個技巧匯總
login directory 安全系統 很大的 hfile 系統損壞 iptables open 實踐 作為linux運維,多多少少會碰見這樣那樣的問題或故障,從中總結經驗,查找問題,匯總並分析故障的原因,這是一個Linux運維工程師良好的習慣。每一次技術的突破,都經歷著
編寫優秀jQuery插件的10個技巧
max run () hide container line 選項 als 不同的 1. 把你的代碼全部放在閉包裏面 這是我用的最多的一條。但是有時候在閉包外面的方法會不能調用。不過你的插件的代碼只為你自己的插件服務,所以不存在這個問題,你可以把所有的代碼都放在閉包裏面。而
降低網站跳出率的五個技巧
SEO優化 網站跳出率 網站優化 網站推廣 網站運營 衡量一個網站用戶體驗好不好的重要標準就是網站跳出率,跳出率高的原因有很多,如用戶找不到有價值的參考內容,服務器不穩定,網頁加載速度過慢,網頁文件太大等等,如果這些問題不能及時解決,對用戶體驗甚至對整個網站優化非常不利,所以針對網站跳出率
提升vector性能的幾個技巧
嘗試 連續 指針和引用 數據結構 ring 情況下 但是 real stl 原文:https://www.sohu.com/a/120595688_465979 Vector 就像是 C++ STL 容器的瑞士軍刀。Bjarne Stoutsoup 有一句話 – “一般情況
用駱駝祥子讀書筆記來解答ZBLOG博客寫作的3個技巧[圖]
角度 進行 ffffff 收獲 images ima ext 作文 多次 建設博客已經半年了,準確的說應該是7個月了吧,雖然沒有取得什麽好的進展,但畢竟一直在努力,主要是內容建設上比較麻煩,很難像大站一樣獲得大量的內容,這是非常頭疼的問題。總之,個人也整理了一些關於讀書筆記
終極指南:提高Nginx服務器硬度的12個技巧
val 服務器系統 rule .org quest b站 nginx配置 自己 最好 前言 本文將介紹用來提高Nginx服務器的安全性,穩定性和性能的12種操作。 1: 保持Nginx的及時升級 目前Nginx的穩定版本為1.14.0,最好升級到最新版本,看官方的relea
讓大腦高效運轉的24個技巧
翻譯 變化 圖形 小學 英文 完成 分解 創新 一個 內容來譯自David Rock “Your Brain at Work” and Nir Eyal, NirAndFar.com。 Nir Eyal 是《上癮》這本書的作者。 如何抓住
推進你的計算機網絡事業:10個技巧
我們 不可 一點 協議 團隊 新技術 基礎設施 創新 需要 希望將自己的職業生涯提升到新水平的網絡專業人士有很多選擇,有時可能會讓人不知所措。關鍵是找出你想去的地方,然後評估你如何到達那裏的選擇。對於一些人來說,職業發展可能就像在一項流行的新技術上學習一周的課程一樣簡單。對
培養人脈的106個技巧
生日 向上 理解 人在 尋找 別人 不同的 水平 關聯 成功的道路上,人脈比知識更重要。發展人際關系應當是你優先級最高的事。《不要一個人吃飯( Never Eat Alone)》一書介紹了21世紀的交際規則。書中包括了許多實用技巧,讓你通過人際關系而興旺發達。 保留精華,以
克服拖延——7個技巧讓你堅持前進
spa 垃圾 事情 工作 自己 清理 項目 技巧 目標 1.應付你的壓力。 很多人發現有壓力的生活是讓他們養成拖延習慣的主要原因。你可以通過健康的方式減壓從而解決這些問題。比如保持充足的睡眠,有足夠的時間來放松,當你需要時可以尋求別人幫助,這些都可以減輕你的壓力。你還可以