TFS 的替代方案:Redmine【Part1】安裝 Redmine + Subversion

想要有個團隊網站,有共同的文件庫、行事曆,還可以指派工作,相關的過程都用Email通知,
嗯~如果有甘特圖那也不錯唷,什麼!還可以跟版本控制軟體結合唷?簽入的程式碼可以跟工作指派連結,那很棒耶!
聽起來有些部分是不是跟TFS有點相似的感覺?我們今天要介紹的就是免費的 Redmine + Subversion 軟體,提供您除了 TFS外的另一個選擇。

嗯~首先要講一下為什麼會有這篇文章的出現,因為Apple的標錯價,小弟也跟著去標了一台,
沒想到居然被評定為資格不合....( 小弟100%符合資格,現在正在與客服人員持續連繫中,不過我想應該是沒望,Apple的態度就是不理~~orz )

後來因為NB想要加Ram到8G,新工作室也需要一台版本控制的server...權衡之下應該是直接買Mac Mini比較划算,
(其實是手癢想要玩MAc Mini),所以就跟我前同事買了一台...

所以就有這篇文章啦! 哈... 回到正題!

 

Mac OSX 與 Redmine 的邂逅【Part1】安裝 Redmine + Subversion

想要有個團隊網站,有共同的文件庫、行事曆,還可以指派工作,相關的過程都用Email通知,
嗯~如果有甘特圖那也不錯唷,什麼!還可以跟版本控制軟體結合唷?簽入的程式碼可以跟工作指派連結,那很棒耶!

聽起來有些部分是不是跟TFS有點相似的感覺?我們今天要介紹的就是免費的Redmine軟體,
其實我個人有用過TFS2005與2008,其實對於微軟的TFS感覺到相當的方便,
團隊的網站也讓成員彼此之間的文件控管、分享有了不一樣的感受,對於團隊分工幫助真的很大,

Redmine的部分功能與TFS類似,有些功能更是人性化些,例如工作與日曆、甘特圖的結合,而且最棒的是支援繁體中文,
若您沒有預算可以建置TFS的環境,強烈建議使用Redmine+subversion來控管您的專案。

接下來我會撰寫系列的文章,透過下列工具的整合,打造一個小型專案團隊所需要的程式開發環境應用。

  • Mac OSX server ( 作業系統)
  • Redmine ( 專案管理軟體)
  • Subversion ( 版本控制軟體)
  • Ankhsvn套件 ( Visual Studio 外掛,讓 Visual Studio.Net與Subversion結合)

 

以下的文章適合

  • 想用版本控制系統,但又不想花錢的人
  • 習慣使用TFS卻無法使用TFS的人
  • 想建立團隊專案管理網站的人( wiki、文件管理、甘特圖、工作指派、自動通知...)
  • 規模較中小型的開發團隊
  • 受夠了 Project 跟 Excel 的人 XD



閱讀前,請先了解什麼是 Redmine? 
(請自行Google啦!介紹的原文居多,自己啃一下 。 官網
http://www.redmine.org)

或是你也可以直接上官方demo的網站使用
http://demo.redmine.org/ ,這樣比較快了解,

這邊先貼幾張圖


共用日歷,與工作指派結合

alt

 

 

甘特圖 (子工作回報完成度,會自動顯示在上面,並自動計算父工作項目的完成度)

alt


安裝前準備

  1. 安裝工具SSH Secure Shell  ( 重要!讓 Windows 可以遠端 Terminal Mac OSX)
  2. Mac中文化 ( 純粹用起來爽而已)
  3. 安裝yahoo keykey 輸入法 (同上)
  4. 學會 vi 指令 ( 重要!)


安裝步驟:

  1. 安裝 Bitmine的 redmine版 http://bitnami.org/stack/redmine 
    (Include all the dependencies necessary to run the application, such as Apache, MySQL, Ruby, Rails and Subversion.)
    可以省去很多麻煩,強烈建議初學者使用
    請使用root 身分安裝,如果要安裝在port80上的話,請將OSX預設的網站關閉。
     
  2. Subversion 環境設定
    • 確定SVN版本,因為Mac 已經有內建的svn了,所以目前是1.6.5版
      				root# svn --version
      svn, version 1.6.5 (r38866)
         compiled Jan 26 2010, 17:43:42
    •  將內建的SVN變更為 Bitnami 版本

      使用SSH登入OSX,修改/etc/bashrc,在最後加入 export PATH=/Applications/redmine-1.0.2-0/subversion/bin:$PATH
      				root# vi /etc/bashrc
      root# reboot
      root# svn --version
      
      svn, version 1.6.12 (r955767)
         compiled Sep 30 2010, 04:37:28
      SVN版本已經變成1.6.12,是目前的最新版本
       
    • 建立SVN的主目錄 (你可以建在你喜歡、好記的地方)
      				'建立主目錄
      root# sudo mkdir /Applications/redmine-1.0.2-0/subversion/repos
      
      '建立一個專案
      root# sudo svnadmin create /Applications/redmine-1.0.2-0/subversion/repos/repoOne
      
      '建立三個基本目錄 (以下步驟非必要)
      root# cd /Applications/redmine-1.0.2-0/subversion/repos/repoOne
      root# mkdir tmp '建立測試資料夾
      root# cd tmp
      root# svn co file:///Applications/redmine-1.0.2-0/subversion/repos/repoOne
      root# svn mkdir tags branches trunk
      root# cd repoOne 
      root# svn mkdir tags branches trunk 
      root# svn ci -m "check in by remhom" 
      
      
      '變更使用者為 daemon,讓使用者可以透過 http 來寫入資料,並將資料夾權限更改為755。
      root# chown -R daemon /Applications/redmine-1.0.2-0/subversion/repos
      root# chmod -R 755 /Applications/redmine-1.0.2-0/subversion/repos
      註1:不變更為 daemon 的話,後續使用類似像ankhsvn套件時,會發生類似
      svn: Can't open file '/XXX/SVN/repos/db/txn-current-lock': Permission denied 的錯誤訊息


      註2:資料夾權限不變更為755的後,後續檔案在lock的時候會失敗。

       
    • 				設定 apache2 server ,啟用svn模組
       
      
      
      
      
      root# sudo vi /Applications/redmine-1.0.2-0/apache2/conf/httpd.conf
      
      '將下面兩行前的#拿掉
      LoadModule dav_svn_module     modules/mod_dav_svn.so
      LoadModule authz_svn_module   modules/mod_authz_svn.so
      
      '並加入下列的參數
      <location /repos>
      DAV svn
      SVNParentPath /Applications/redmine-1.0.2-0/subversion/repos
      SVNListParentPath on
      
      # how to authenticate a user
      AuthType Basic
      AuthName "Subversion repository"
      AuthUserFile   /Applications/redmine-1.0.2-0/subversion/subversion.auth
      
      # only authenticated users may access the repository
      Require valid-user
      
      </location>
    • 設定 SVN的http存取的帳號、密碼
      • 建立認證檔案 root# sudo vi /Applications/redmine-1.0.2-0/subversion/subversion.auth (請用 :wq! 寫入檔案)
      • $ sudo htpasswd -cm  /Applications/redmine-1.0.2-0/subversion/subversion.auth user1 (帳號請自取)
        Password:
        New password: // 輸入新增帳號的密碼
        Re-type new password:
        Adding password for user user1

        $ sudo chmod 600 /Applications/redmine-1.0.2-0/subversion/subversion.auth
        $ sudo chown _www /Applications/redmine-1.0.2-0/subversion/subversion.auth

         
    • 瀏覽  http://localhost/repos

      如果有出現帳號密碼驗證,通過後有顯示網頁的話,就表示svn沒問題,並可以提供http存取。

                                 alt
 

  3.   設定redmine與subversion的連結

  • 登入redmine
  • 建立專案
  • 設定=>選擇Subversion=>輸入網址、帳號、密碼

    alt
  • 若設定成功,完成後可以看到redmine已將subversion的資訊導入如下圖。

    alt

 

參考文章:http://asuralyc.blogspot.com/2009/05/svn-websvn-ssl-trac-on-leopard.html