使用者工具

網站工具


service:subversion_trac

Subversion

設定專用資料夾:http://i.repeat.tw/blog/post/8687153

如何不被 TortoiseSVN 拖慢系統效率:http://www.jeffhung.net/blog/articles/jeffhung/758/

Branck and Merge

忽略檔案或資料夾

svn propedit svn:ignore [Repo位置]

如果想要忽略目前目錄中的 tmp 及 Config.php 資料夾,可在此目錄下執行

svn propedit svn:ignore .

然後每行一個檔案或資料夾:

tmp
Config.php

最後 commit 上去即可。

post-commit hooks

Subversion on Debian

已經有 apache2 網頁伺服器

安裝 svn

# apt-get install subversion subversion-tools libapache2-svn

建立 svn 目錄

建立 project root,並修改擁有者

# mkdir /home/svn
# chown www-data:www-data /home/svn

設定

修改設定

# vi /etc/apache2/mods-enabled/dav_svn.conf
<Location /svn>
  DAV svn
  SVNParentPath /home/svn
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /home/svn/dav_svn.passwd         // 登入認證
  AuthzSVNAccessFile /home/svn/dav_svn.authz    // svn project 權限設定檔
  Require valid-user
</Location>

新增 svn 使用者

# /usr/bin/htpasswd -c /home/svn/dav_svn.passwd [username]

建立各 project

# svnadmin create /home/svn/TEST
# chown -R www-data:www-data /home/svn/TEST

設定各 project 使用權限

# vi /home/svn/dav_svn.authz
[TEST:/]
username = rw
sars = r

若有中文檔名,要使用 UTF-8 without BOM 格式儲存。

重新啟動 apache2

# /etc/init.d/apache2 restart

網頁瀏覽

merge

mega commit 後要 undo 的方法:(不想要手動改回來)

svn merge -r 1234:1233 . .
svn commit

這個動作其實就是做一個 r1234 與 r1233 的 diff 後 patch 進 working repository,然後 commit 出去。

Subversion on FreeBSD

不使用 Apache 伺服器,直接用 svnserver 作為存取協定。

設定編譯 subversion 的參數

編輯 /usr/local/etc/pkgtools.conf,加上:

MAKE_ARGS = {
'devel/subversion' => 'WITH_SVNSERVE_WRAPPER=yes WITH_PERL=yes',
}

安裝 subversion

portinstall devel/subversion

設定值:

[X] PERL              Perl bindings
[X] NEON              WebDAV/Delta-V repository access module
[X] BDB               db4 repository backend
[X] SVNSERVE_WRAPPER  Enable svnserve wrapper

Subversion on Windows

trac on Debian

安裝

# apt-get install trac
# apt-get install libapache2-mod-python    // 如果沒安裝的話

建立 trac 目錄

# mkdir /home/trac
# chown www-data:www-data /home/trac

設定

直接把 trac 的設定和 svn 放在一起。

# vi /etc/apache2/mods-enabled/dav_svn.conf
<Location /trac/>
   SetHandler mod_python
   PythonHandler trac.web.modpython_frontend
   PythonOption TracEnvParentDir /home/trac    // multiple projects
   PythonOption TracUriRoot /trac/
   AuthType Basic
   AuthName "trac"
   AuthUserFile /home/svn/dav_svn.passwd    // use same auth with svn
   Require valid-user
</Location>

新增專案

# trac-admin TEST initenv
Project Name [My Project]> 
Database connection string [sqlite:db/trac.db]>
Repository type [svn]>
Path to repository [/path/to/repos]>                            // ex: /home/svn/project_name
Templates directory [/usr/share/trac/templates]>
# chown -R www-data:www-data project_name

加入管理者帳號:

trac-admin [[project_path]] permission add [[username]] TRAC_ADMIN

TracWebAdmin

使用網頁介面取代 trac-admin 指令,方便專案管理。

確認是否已經安裝 python-setuptools。

# apt-get install python-setuptools

下載 WebAdmin 原始碼來編譯:

# cd /tmp
# svn co http://svn.edgewall.org/repos/trac/plugins/0.10/webadmin
# python setup.py bdist_egg

完成後在 dist 目錄下會產生一個 TracWebAdmin-xxx.egg 檔案,複製到:

# mv TracWebAdmin-xxx.egg /usr/local/lib/python2.X/site-packages/

建立 Apache 執行 Python 時用的暫存目錄:

# mkdir /var/www/.python-eggs
# chown -R www-data:www-data /var/www/.python-eggs

重新啟動 Apache。

網頁瀏覽

附註

所有上傳的檔案會依照每版本一個檔案放在 /home/svn/sandbox/db/revs 資料夾中。

subversion 參考

trac 參考

刪除 .svn 目錄

find . -type d -name '.svn' -exec rm -rf {} \;

iFolder

http://www.ifolder.com/

http://sourceforge.net/projects/ifolder/files/

iFolder is a safe and secure way to share and synchronize files across computers and within teams.

SparkleShare

http://sparkleshare.org/

SparkleShare is a collaboration and sharing tool that is designed to keep things simple and to stay out of your way.

2011/12/05: Do not support Windows client yet.

service/subversion_trac.txt · 上一次變更: 2011/12/05 11:16 由 wenpei