Archive for the svn Category

Setting SVN Server on Windows

Posted in SCM(Software Configuration Management), svn on 2006 年 11 月 16 日 by Kun-Yi
一直沒有正確的設定與使用 SVN
今天終於設定正確
寫下步驟來以備不時之需呀
  1. 下載最新的 SVN for Windows 版本
    • 目前是 SVN 1.4.2 版,直接在建一個安裝目錄下解開 .zip 就行了,在我的系統上是 C:SVN142
  2. 設定系統PATH環境變數,目前是設在 System 下的 PATH=%PATH%;C:SVN142
  3. 設定好Command  line 的環境 參考另外一篇文章吧
  4. 使用 svnadmin 建立 Repository, 目前是設在 D:svnrepos
    • 因此指令是 svnadmin create D:svnrepos
  5. 進入repository 下面的 /conf 目錄,可以看到下面三個預設產生的檔案
    • authz, 用來設定Authorization, 可以建立 User Groups or User 並針對不同專案設定Read/Write。在SVN中不同的專案放在同一個Repository 是用目錄控制。
    • passwd, 用來設定User password
    • svnserve.conf,  用來提供 svnserver 的存取設定,目前因為只有個人使用。暫時先將authz-db維持 Comment 狀態,其他採取預設值,只要 Uncomment就好.。另外要注意的是如果是搭配Apache 使用 svn 的話,權限是依據Apache 的設定,這時這個檔案是沒有任何作用的。
  6. 設定完成後,目前系統不安裝Apache,而是使用 svnserver。使用 daemon模式的話,直接下 svnserve -d -r D:svnrepos
  7. 準備要進行版本控制的檔案,一般來說會採用下面的檔案結構
      • Project,  專案目錄名稱
        • trunk, 專案的主要檔案,一般來說會將預備進行控制的檔案放進來
        • branches, 專案分支,修改檔案版本尚未穩定時的,通常是功能需求變更或程式碼大幅更新
        • tags, 發行的版本控制
  8. 將專案匯入使用 svn import  ProjectPath  svn://svnserve_host/svnrepos
  9. 之後就可以透過 svn checkout  svn://svnserve_host/svnrepos/project  development_path 將專案從svnserver 導出,
  10. 修改過程式碼的話可以使用 svn commit 提交上 svnserver
  11. 如果有多人共用的話,可以用 svn update 得到最新的檔案,並且在提交前應該要作一次這個動作,確認檔案是否有更改衝突。
  12. 在Client 上使用,Windows 上有小烏龜(TortoiseSVN)可以裝,直接Subclass File Expoler,不需要打 Command,只剩下Server 建立 Repository 時會需要設定 而用到 Command line。不過目前的小烏龜好像連建立 Repository 都有,看來是為了 Single Developer 設計的機制,單機作為 Server 與 Client,這樣記得沒錯的話,連 svnserve 都不用啟動。直接使用 file:///Drive:/Repository 就行了。
  13. 參考資料的話SVN 的中文站(簡體)有許多範例,個人覺得寫的比 SVN Book更詳細與清晰。
廣告

How do using Subversion to Version Control

Posted in SCM(Software Configuration Management), svn on 2006 年 07 月 03 日 by Kun-Yi
SVN(Subversion)是一個用來作檔案版本管理的軟體,跟CVS主要的不同是他的版本控管是相依在整個檔案庫(Respository)的,每一次的更新(import, commit/update)都會使版本增加,因此可以掌握到目錄中每次檔案變化的情形,而CVS是針對每個檔案變化版本,這會產生一個問題,當需要回覆某個時間的目錄檔案狀況(snapshot),CVS並沒有辦法達成這個任務,相對的來說SVN天生就是如此。
另外SVN採取Binary Diff,因此對於各類檔案都可以勝任,而CVS卻是基於Text Diff. 對於許多非程式原始碼的檔案就無能為力了。
目前我使用SVN在單機上管理檔案版本,將檔案庫設定在D:svn_repos目錄下
要建立一個檔案庫時,需使用svnadmin命令列指令
svnadmin create d:\svn_repos\work
這樣就可以在d:svn_repos下建立一個,名為work的檔案庫。
然後在將需要檔案版本管理的目錄或檔案匯入
svn import d:\myfiles  file:///d:/svn_repos/work
這樣就可以將d:myfiles 檔案或是目錄納入work 的檔案庫里,進行版本控管。
然而開始變更檔案前,還需要一個步驟,就是將檔案從檔案庫里取出
svn checkout file:///d:/svn_repos/work d:\mywork
這樣你會發現在 d:\mywork下有原先匯入控管的檔案與目錄了。