2010年4月22日 星期四

在 Visual Studio 中使用 SVN

上次在安裝完了 svn 之後,接下來就是要讓 Visual Studio 整合 svn。

網路上有一些套件可供使用。在這裡我們所採用的是 ankhsvn,下載之後直接安裝就可以了。

我們簡單的介紹一下如何在 Visual Studion 中如何使用。

首先先新增一個專案,我們會發現到,多了一個 Add to Subversion 的選項

image

按下 ok 後會出現加入 svn 的畫面,將 Repository Url 改為你 svn 的位置。在這裡是 svn://svnserver/test/

image

選好之後會請你輸入帳號密碼,就照我們之前在 passwd 那個檔案中所設定的,我們設定的是

user : testuser

password : testpw

輸入完畢之後,會出現下面的畫面,他會在你選的目錄下再建立一個 Project Name 的目錄。所以不用特地再建立新的目錄。

image

建立好之後可以看到我們的 solution windows 中的檔案多了一個符號 image 這代表這是一個新的檔案,尚未 Commit 至 repository 中。

image

在 solution 上按右鍵 選擇 Commit Solution Changes 將 solution Commit 進去

image

之後檔案的狀態會更改為image 此時如果有對檔案做任何的修改的話狀態會更改為 image

image

修改完畢之後記得要再 Commit 進 svn 中。但在 commit 之前千萬要記住,要先 compile 過,不要將有問題的 code commit 進 svn. 這樣會照成大家的麻煩。

2010年4月21日 星期三

Install SVN on DS1010+

DS1010+ 是 Synology NAS 產品,性能似乎十分的強大。網路上也有許多可以應用的資源。最近公司需要使用到版本控管的功能。於是便有想在 DS1010+ 上安裝 SVN 的念頭。因為 DS1010+ 基本上是跑 linux 的系統,再加上它所使用的 CPU 是 Intel ATOM 的系統,所以與之前 Synology 所提供的 Package 不同。著實讓我花了不少時間。

以下就是我安裝的過程

所有的資料都來自於 Synology 的wiki  Step-by-step guide to installing Subversion。有興趣的人也可以直接上去參考。

1. Enable CLI on your Diskstation  將啟動 SSH 功能打勾

image

2. 建立啟動 subversion 服務的使用者

因為diskstation 是跑 Linux 系統的,所以 subversion 需要一個啟動它的使用者,這裡所使用的是 svnowner。記住,這個使用者的密碼可以要設的複雜一點。而且就算你忘了也沒關係。因為基本上我們是不會用到他去做登入的動作。image

 

3.建立一個共用資料夾供 svn 使用。

在這裡我所使用的是 svn 目錄,記得要給 admin 及 svnowner 有讀寫的權限。並將其他所有的權限都移除。

4. 安裝 ipkg bootstrap

在這裡我參考了另一個討論串(IPKG for DS1010+)及另一個Blog,Diskstation 的預設是沒有 ipkg 的(ipkg 是在嵌入式裝置上最見的套件管理系統),我們需要利用 ipkg 來安裝我們所需要的套件。

    1. 利 用 putty 進入到 DS1010+ 中的命令模式。
    2. get the script from internet
        wget http://ipkg.nslu2-linux.org/feeds/optware/syno-i686/cross/unstable/syno-i686-bootstrap_1.2-7_i686.xsh




    3. run it   

        sh ./syno-i686-bootstrap_1.2-7_i686.xsh




    4. reboot


    5. after reboot, login with root。 變更 ipkg 所查詢的位址

        vi /opt/etc/ipkg.conf




    6. 在開啟檔案後加入以下紅色的文字,因為 DS1010+ 的cup 是 intel atom 系列的,所以我們要採用的是 syno-i686 的 Feed


    7. # Uncomment one of the following package feeds or resolve your arch
      # by visiting http://ipkg.nslu2-linux.org/feeds/optware/
      # src nslu2 http://ipkg.nslu2-linux.org/feeds/optware/nslu2/cross/stable
      # src fsg3 http://ipkg.nslu2-linux.org/feeds/optware/fsg3/cross/stable
      # src ddwrt http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable
      # src xwrt http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable
      # src whiterussian http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable
      # src oleg http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable
      # src ts72xx http://ipkg.nslu2-linux.org/feeds/optware/ts72xx/cross/stable
      # src/gz openwrt-brcm24 http://ipkg.nslu2-linux.org/feeds/optware/openwrt-brcm24/cross/u
      # src/gz openwrt-ixp4xx http://ipkg.nslu2-linux.org/feeds/optware/openwrt-ixp4xx/cross/u
      dest root /

      #option verbose-wget
      #
      # Proxy support:
      #
      #option http_proxy http://localhost:5865
      #option ftp_proxy http://proxy.tld:3128
      #option proxy_username <username>
      #option proxy_password <password>

      src syno-d1010 http://ipkg.nslu2-linux.org/feeds/optware/syno-i686/cross/unstable






    1. 更新 ipkg 的資料


    2. ipkg update
      ipkg upgrade


    3. 到這裡 ipkg 可說是可以使用了,接下來我們要開始來案裝 Subversion


    4. ipkg install svn




5. 設定 SVN 




    vi /etc/inetd.conf


  1. 加入下面的設定到最後一行


  2. svn stream tcp nowait svnowner /opt/bin/svnserve svnserve -i -r /volume1/svn


  3. svnowner 就是我們剛才所新增的使用者,/volume1/svn 就是我們剛才所新增的共用目錄。


  4. vi /etc/service


  5. 加入下面的設定到最後一行


  6. svn 3690/tcp #subversionsvn 3690/udp #subversion


  7. 重新開機 reboot


  8. 重新開機後要來設定 SVN 存放空間(Repository)的權限



    1. su svnowner
      cd /volume1/svn
      svnadmin create test


    2. 你可以將 [test] 改成你想要的名稱。經過以上的指令後會在svn 目錄中新增一個 test 的目錄,現在我們要經由編輯裡面的檔案來設定存取的權限


    3. vi /volume1/svn/test/conf/passwd


    4. 加入


    5. [users]
      testuser = testpw


    6. vi /olume1/svn/test/conf/svnserve.conf


      加入

      [general]

      anon-access = none


      auth-access = write


      password-db = passwd


      realm = I am your test repository







大功告成,接下來就是使用 svn client 去存取這個 Repository 了