Showing posts with label svn. Show all posts
Showing posts with label svn. Show all posts

2012-08-05

Windows 下安装配置 bitnami trac(svn server + trac)

下载
安装
  设置初始项目,svn reop 目录,trac proj 目录
svn配置:

svnserve根目录:
  C:\Program Files\BitNami Trac Stack\subversion\scripts下
  双击serviceinstall.bat 卸载svn服务,
  用文本编辑器打开,在 -d 后 添加 空格 -r "c:\BitNami Trac Stack repository"
  目录为安装时设置的svn repo根目录。保存关闭
  打开命令行,执行 serviceinstall.bat INSTALL 重新安装服务
trac:
  安装tracaccountmananer插件:
  (我在安装之前已经用安装bitbami trac时设置的admin 用户登录,安装完插件重启apache 之后用admin添加到其他用户)
  双击运行 安装目录下的 use_trac,
  easy_install http://trac-hacks.org/svn/accountmanagerplugin/0.11 回车

  修改 trac.conf(C:\Program Files\BitNami Trac Stack\apps\trac\conf),删除apach2配置信息

AuthType Basic
AuthName “trac”
AuthUserFile /var/www/trac/.htpasswd
Require valid-user


修改trac.ini(C:\BitNami Trac Stack projects\fs\conf)


[components]
trac.web.auth.LoginModule = disabled #禁用传统的登录模块插件
acct_mgr.web_ui.LoginModule = enabled
acct_mgr.web_ui.RegistrationModule = disabled
acct_mgr.htfile.HtPasswdStore = enabled



[account-manager]
password_format = htpasswd
password_store = HtPasswdStore
password_file = .htpasswd #这里配置密码文件的路径,根据实际情况修改


正常使用之前可能还需要做如下配置:



重启apache

安装toc
easy_install http://trac-hacks.org/svn/tocmacro/0.11

修改trac.ini
[components]
tractoc.* = enabled

使用toc
[[TOC]]
或者 不需要显示 “Table of Content文字”:

2009-11-24

Win 7 下tortoisesvn右键失效的解决办法

最近安装了win7,发现在文件夹内点击右键,tortoisesvn相关的菜单都没有了,只有在文件夹上火文件上点击才出来,非常不方便,原来是因为project所在的文件夹在Libraries下,解决方法也很简单,从libraries里删除proj所在的顶层文件夹(其实只是快捷方式)即可,或者安装tortoisesvn 的nightly版本

http://groups.google.com/group/tortoisesvn/browse_thread/thread/faa0a1bfeae08e5

2008-09-18

最近的收获

  • 最近工作上比较清闲,一直断断续续的在看code complete,写了一个记账的小程序。使用了sqlite,一个开源轻量级的数据库,不需要 server,不需要配置,只要一个dll就ok了,在firefox,Adobe reader 等程序中得到了广泛的应用。对于小的应用,sql server express,access都显得过于臃肿,sql ce简直是个废品。System.Data.SQLite是sqlite 的.net wrapper,实现了linq 和entity framework
  • 使用了ngchart ,google chart api的.net wrapper,也是开源的。
  • 开源是大势所趋,微软的 Enterprise Library开源了,Sun 为了和微软的CodePlex和Google的Google Project host 抗衡,拉拢开发这,低调的开放的Kenai beta 支持 svn 和 mercurial repository,但是需要邀请才能创建Project,我从nicksieger 处得到创建Project的邀请一枚用TortoiseHg (比我上次用进步了不少)创建了一个mercurial的Project,感觉不错的说
  • CodePlex launches support for TortoiseSVN
  • .NET 程序员必备工具下载
  • 昨天试用了一下AnkhSvn ,把svn的大部分操作都集成到了vs里,比Tortoisesvn更方便,推荐

2008-07-07

分布式版本控制工具

自己用subversion也得有10几个月的时间了,不但自己用的挺顺手,还推荐给了team,效果显著。最近1.5也发布了,增加了不少新功能,我个人用到的是TSVN的缓存日志功能和changeset功能,特别是tsvn默认提供的ignore-on-commit changeset,给我提供了很大的便利。把不想或不能(例如与个人设置相关的文件)提交,这时

再说一下svn的不足之处,当然这是我喜新厌旧的结果
1)要将一个工程纳入版本控制,必须首先在A出创建版本库,保持版本历史,然后在浅出到B处,然后再在B处(工作)添加要纳入版本控制的文件,或者是创建版本库之后从C处导入要进行版本控制的所有文件,在签出到D处(工作目录)进行开发。但我的情况是,整个项目组用另外一个版本控制工具,工作目录是不可变的(也就是我在同一个目录下同时使用两个版本控制工具,可以想象,这是一件多么痛苦的事情-_-|||),所以我必须把当前工作目录导入到svn,再删除当前目录,再在原地从svn签出文件。
2)工作目录中,每一级目录里都有一个.svn文件夹,很是碍眼。
3) 集中的版本库,一旦版本库服务器关机,所有人将无法提交。
前一阵子研究了一下分布式的版本控制(distributed version control system, DVCS)。所谓分布式,就是所有人都有一个完整的版本库,提交的话只是提交到本地的版本库,这样,基本不需要网络连接,速度也很快。网络连接操作只是clone,push,pull操作。clone,从别处获得一个完整的版本库,pull获得他人的更改,push 把本地更改推送给其他人或者一个“中央”版本库。
我所了解到的dvcs主要有 Bazaar,Mercurial,Git,Darcs
Bazaar,ubuntu 背后的公司 canonical支持的项目,较活跃,目前版本1.5,tortoisebzr貌似好久没有更新了,不过我用cmd的时候中文有时候乱码,再者bzr使用插件的形式扩充其功能,感觉不够简洁(那Firefox呢?你不是装了一堆插件?囧)。不过我喜欢bzr的whoami的设置用户名,还有,有ignore 命令来直接忽略文件,mercuiral 必须使用.ignore文件。
mercurial,又名hg(汞的化学符号)目前版本1.01,tortoisehg也相当不错,不过貌似比较慢,也可能是我自己机器的原因。
Git linux 内核开发的版本控制工具,linux大神Linus Torvalds 所写,主要应用于linux平台,windows下下也有移植版本,据说性能一般
这里有一篇文章论述各个vcs和dvcs 的优缺点:Choosing a Distributed Version Control System
这里有一篇通俗易懂的介绍:Intro to Distributed Version Control (Illustrated)

2008-03-18

使用Subversion作为版本控制工具

1、架设服务器
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 下载最新的subverion 安装程序,最新版本为1.4.6
http://tortoisesvn.net/downloads 下载最新的TortoiseSVN,最新版本为1.4.8
安装svn,tsvn
创建版本库(如果单纯用作服务器的话,tsvn不是必须的,可以通过svnadmin create myreop 命令来创建版本库,详见svnbook)
设置访问权限
打开myrepo\conf\svnserve.conf,作相应的修改
[general]
anon-access = read
password-db = passwd

添加用户
打开myrepo\conf\password,添加用户,设置密码
[users]
zhangsan= 123
lisa= 12345

【update 20091224】一般可按照如下配置
svnserve.conf:
[general]
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz

passwd:
[users]
harry = harryssecret

authz:
[groups]
#根目录下的所有资源
[/]
harry = rw

启动服务器
在命令行下输入
svnserve -d -r c:\myrepo
-d 后台模式
-r 服务器的根目录
方便起见,可保存为一个批处理文件

初始化版本库,两种方式
1导入方式
2签出空版本库,添加文件,签入
==================================
2、客户端
安装tsvn,重启(如果不需要命令行操作,不需要再另行安装svn)
在合适的(空)目录下右击,选择“svn checkout”
在“Url of repository” 中填写“svn://SeverName”,点击确定,即可得到一份拷贝

技巧、工具(不断添加):
优化TSVNCache.exe进程的I/O性能
tsvn的一个方便之处就是图标覆盖,可以随时在资源管理器里建设那些文件被修改了。但默认情况写TSVNCache进程会扫描整个硬盘,对于性能一般的电脑,这是很大的开销,一个办法是完全关闭tsvn的图标覆盖。另一个办法是只让tsvncache进程扫描WC 文件夹:
setting => Look and Feel => Icon Overlay
在Exclude Paths 里填入所有盘符,每行一个,例如
c:\*
d:\*
e:\*
f:\*
g:\*

在Include Path 里面填入 Working Copy 文件夹,例如
d:\myCopy\*
确定之后在任务管理器中杀死TSVNCache.exe进程,它会在需要的时候重新启动,之后电脑的性能就会有所提升了。
参见
Optimize Tortoise SVN Cache (TSVNCache.exe) Disk I/O

一个服务器,多个版本库
其实很简单,就是建立一个版本库文件夹,并把它作为服务器的根目录,所有的版本库建在此文件夹之下,例如,我们要在名为HAL9000的服务器上建立三个版本库:GreatDog, SmallCat, BraveGoat,,目录结构可以是这样:
D:\AllRepos\GreatDog
D:\AllRepos\SmallCat
D:\AllRepos\BraveGoat
启动服务器:
svnserve -d -r D:\AllRepos
GreatDog的地址:
svn://HAL9000/GreatDog
参见
One svnserve, multiple repositories

监视版本库的更新
如果是比较大的项目,可以修改hooks目录下的post-commit.tmpl,提交后发送邮件,具体参考这里,我还没有进行过此类设置,在此暂不详述
如果是比较小的项目,可以使用
SVN Notifier(项目主页)。这是个可以常驻通知区的简单但是很实用的小程序,可以监视版本库的变动也可以作为工作目录的快速入口,进行更新,提交等操作。如果有多个工作目录,可以把它们都添加进去,方便管理。需要安装svn,tsvn, .net framework 1.1

Update:
Coding Horror 上有一篇详尽的文章
Setting up Subversion on Windows
http://www.codinghorror.com/blog

Update 2008.4.22
Subversion visually explained in 30 sec
http://coding-time.blogspot.com/2008/04/subversion-visually-explained-in-30sec.html