懶人整合 Apache + SVN

in

假設 ApacheSVN 都裝好了

1. 因為懶得自己 build, 但是又得生出 library, 所以直接找現成的. 我用的是 BitNami Stack. BitName 提供了很多現成安裝整合好的工具, 類似 XAMPP. 以我使用的 BitName Redmine 為例, 裝好之後, 把 /opt/redmine-0.8.3-0/apache2/modules/ 的 mod_dav_svn.so 和 mod_authz_svn.so 給 copy 出來, 放到你自己的 Apache 的 module 目錄下

2. 把 /opt/redmine-0.8.3-0/subversion/lib 的所有東西也 copy 到 Apache 的 lib 目錄下 (這部份有點討厭, 因為 library 就混在一起了, 應該有辦法分目錄吧?)

3. 執行 svnadmin create /path/to/repository
建立好你的 SVN 的 repository 目錄

4. 建立 Apache 的帳號密碼
如果是第一次建立使用這個指令
htpasswd -c /path/to/somedirectory/htpasswd admin_user
如果是修改密碼則把 -c 拿掉即可, 如下
htpasswd /path/to/somedirectory/htpasswd admin_user
另外, 也可以透過 Htpasswd Generator 這個網站來產生編碼過的密碼

5. 修改 httpd.conf 加上這兩行

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

6. 修改 httpd.conf 或是存放 virtual host 的檔案, 以 XAMPP 來講是 httpd-vhosts.conf

    <Location /svn>
      DAV svn
      SVNPath /path/to/repository
      AuthType Basic
      AuthName "ubversion repositories"
      AuthUserFile /path/to/somedirectory/htpasswd
      Require valid-user
    </Location>

7. 重啟 Apache 之後, http://example.com/svn 就可以直接存取了.

注意: 以上真的是懶人法, 有不少東西都沒設定到, 譬如 SVN 的權限管理之類的. 目的只是弄個可以給自己個人透過 Apache 存取的 SVN 而已.

另外, 在用 SVN 的過程中發生慘劇, 因為 SVN 會產生很多 .svn 的檔案, 而我在建立某些新功能時, 直接把整個目錄作 copy/paste 然後就開始改寫, 結果看來是 SVN 把新目錄當成舊目錄, 程式碼就亂掉了... Mercurial 只會產生一個 .hg 檔案, 而且 Google宣佈將會支援 Mercurial, 或許可以研究一下, 不過 TortoiseHg (Mercurial 的 GUI) 是那種和檔案總管整合在一起的, 我個人不是很喜歡, 我比較喜歡 standalone 的程式. 另外就是, 還不太會裝 ... 雖然 apt-get install mercurial 就裝起來了, 不過得先花點時間弄清處他的安裝, 重點是要好搬家和重灌, 如果是像 SVN 那樣, 只是一個目錄就可以搬來搬去的話就很讚了.



回應

我也有在用SVN / Mercurial 哦
反而喜歡TortoiseHg, 否則就選擇Git了
Mercurial沒有中央集權管理, 怎麼搬, 沒問題

用了一陣子 TortoiseSVN, 覺得滿不錯的, 可能以前不會用吧...

不過覺得 SVN 我有兩個地方覺得比較討厭. 第一個是會建立一大堆 .svn 這樣其實很不方便, 多了一堆檔案. 第二個是, 我發現 svn 所謂的 branch/tag 竟然是整個 copy 一個目錄出去? 我以為應該用屬性的方式, 用這種方法, 檔案多的時候應該會很慢吧. 其他其實還好, 因為我目前只有個人使用 Tongue

至於 Git, 好像沒有很好用的 GUI... 可能也會試試看 Mercurial 吧.

嗯, 有 TortoiseGit

發表新回應

這個欄位的內容會保密,不會公開顯示。
  • 自動將網址與電子郵件位址轉變為連結。
  • 可使用的 HTML 標籤:<a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • 自動斷行和分段。
  • Textual smileys will be replaced with graphical ones.

更多關於格式選項的資訊