Subversion 筆記 (二)
在上一篇安裝筆記中,大概介紹了怎麼安裝一個具有 authentication 功能的 subversion,接著在這篇會介紹怎麼使用 subversion。
首先是增加新的 project 到 subversion:在上篇我在 apache 設定檔裡面設定了 SVNParentPath 在 /usr/local/svn/ 下,而且也新增了一個 TestProject1 repository。假設現在我要把 Project 增加到 TestProject1 repository 下。我的目前檔案結構是,
TestProject1
+--Readme.txt
+--./bin
+--------HelloWorld
+--./src/
+--------HelloWorld.c
subversion 增加 project 到 repository 的 command 是 import,所以底下的 command 可以把目前的檔案 import 到遠端的 subversion server repository 裡面去。因為目前有加入 authentication 機制,所以在最後需要加入 "--username" 的參數,而 "-m" 則是 message 資訊。
shell> svn import . http://svn.dcidc.org.tw/svn/TestProject1/ -m "Test Project 1 repository" --username jacky
認證領域:
'jacky' 的密碼:
新增 src
新增 src/HelloWorld.c
新增 bin
新增 (二進制) bin/HelloWorld
新增 Readme.txt
送交修訂版 1.
shell>
這時候使用網頁去看的話就會看到底下的畫面。
接著就是 check out 指令,把 repository 裡面的檔案複製一份到本機端電腦:
shell> svn co http://svn.dcidc.org.tw/svn/TestProject1 --username jacky
A TestProject1/src
A TestProject1/src/HelloWorld.c
A TestProject1/bin
A TestProject1/bin/HelloWorld
A TestProject1/Readme.txt
取出修訂版 1.
shell>
這時候在目前目錄下會有從 svn server checkout 出來的 TestProject1 目錄。這時候可以切換到 TestProject1 目錄,目前的檔案資料如下:
shell>ls -la
總計 24
drwxr-xr-x 5 root root 4096 12月 12 21:08 .
drwxr-xr-x 3 root root 4096 12月 12 17:44 ..
drwxr-xr-x 3 root root 4096 12月 12 17:44 bin
-rw-r--r-- 1 root root 179 12月 12 21:08 Readme.txt
drwxr-xr-x 3 root root 4096 12月 12 17:44 src
drwxr-xr-x 6 root root 4096 12月 12 17:44 .svn
shell>
該目錄稱為工作目錄,除了 project 的檔案之外,還有一個 .svn 檔案,這個檔案是 svn 用來記載檔案修改記錄用的。
假設現在修改了 Readme.txt,可以透過 svn status command 來看修改的紀錄:
shell>svn status
M Readme.txt
shell>
M 代表 Modification,也就是 Readme.txt 是有修改過的 (跟原本的 Repository Readme.txt 比較)
如果要觀看兩者的差異,可以使用 svn diff command :
shell> svn diff
Index: Readme.txt
===================================================================
--- Readme.txt (revision 1)
+++ Readme.txt (working copy)
@@ -4,4 +4,4 @@
Now it is only used for test.
You could skip the file now.
-
+This line is added by jacky.
shell>
比較 revision 1 跟 working copy 的結果,“This line is added by jacky." 是新增的部份。
假設要把目前的修改放棄,回復到跟 repository 的資料一樣,可以透過 svn revert command:
(還可以 revert 到之前的某個版本)
shell>svn revert Readme.txt
Reverted 'Readme.txt'
shell>
接下來假設要把 Readme.txt commit 到 Repository,可以透過 svn commit command:
shell>svn commit -m "commit test"
Sending Readme.txt
Transmitting file data .
Committed revision 2.
可以發現 revision 已經變成 2 了;假設在 commit 之前,有另外一個 clliu 已經 checkout 了 revision 1 的版本,那 clliu 可以透過 svn update 把 working directory 的版本更新到跟 repository 目前最新版本一致。
shell>svn update
U Readme.txt
Updated to revision 2.
shell>
如果要觀看修改的記錄可以使用 svn log command:
shell> svn log
------------------------------------------------------------------------
r1 | jacky | 2006-12-12 11:01:24 +0800 (Tue, 12 Dec 2006) | 1 line
Test Project 1 repository
------------------------------------------------------------------------
shell>
其他還有一些 svn add、svn list 等等的 command,都可以在 svn 官方網站上可以找到。
沒有留言:
張貼留言