星期一, 5月 12, 2008

轉載 [新人培訓之3 ] 使用 SVN

出處: http://blog.chinaunix.net/u/22617/showart_372059.html
作者: bob_zhang2004@163.com
潤飾: Richman

SVN 命令操作非常簡單和 CVS 的操作基本上是一致的。

修改了某個文件,想傳上去
svn commit bob.c

如果想在 commit 時,自動跳出 vi 讓你可以寫 commit 記錄,則要設置 SVN_EDITOR 環境變數:
export SVN_EDITOR=/usr/bin/vim,可以寫在在 ~/.bash_profile 裡面去。

新增加了某個文件 bob.c,想傳上去
svn add bob.c
svn commit bob.c
自己修改了,發現錯了,想恢復到 svn 上面的第25版, 可以用
svn update bob.c -r25

想要刪除某個文件bob.c :
svn del bob.c
svn commit bob.c
想徹底更新某個目錄(可能改了某個目錄的一些文件,都不想要了)
svn revert -R xxx (xxx是那個目錄)
比如 ,我 checkout 下來後,新建了一個目錄,然後要上傳整個目錄, 這點比cvs強,
svn add xxx
(xxx就是那個目錄) ,他會遞迴的增加整個目錄的。
然後 svn commit 即可

再次強調一點使用 SVN/CVS 的流程:

1. 自 SVN 檔案庫取出一份最新版本
如:
svn checkout


svn update


2. 修改,本地調試, 測試ok

3. 提交自己修改過的文件和增加的文件(svn add xxx) 。
注意人無完人, 可能會忘記傳了某個文件。你可以在工作副本的根目錄下 ,執行svn status,它會列出來你改了哪些文件。
如:
svn status
svn commit


4. 上傳完畢後, 再自 SVN 檔案庫取出一份最新版本,編譯,測試,如果ok,發mail 給相關的人
內容,比如 "I have updated "drivers/fs/ext3.c , pls update it "
總之越詳細越好,最好精確到文件, 如果不能精確到文件 ,也要精確到目錄
不要只說 "我更新了 kernel 的代碼, 你 update 一下"
這樣的話,會給別人增加工作量,kernel 那麼多的代碼,別人總不能每次都 update , 那樣時間會很長。

5. 等待著別人的問題報告

注意事項: 當你都沒有穩定某個 c 文件的時候 ,不要 commit,不要三天兩頭 commit svn 上的同一個文件(如果是這樣,只能說明,你的改的還不穩定, 先自己測試穩定了再傳)

另外, svn 不是個人的備份的倉庫,是大家的財產,要一字千金的改


沒有留言: