将svn做为windows服务自动启动(转贴)

2009年5月1日星期五

 

好处是可以用svn ls svn://localhost访问仓库了 那么在局域网内访问,应该是没有问题了

主要参考 http://excastle.com/blog/archive/2005/05/31/1048.aspx http://www.subversion.org.cn/tsvndoc/tsvn-serversetup-svnserve.html

简单的说,要让它执行起来,需要作如下事情:

  1. 理所当然的是去管网下载最新的Subversion,zip的或者安装版本的皆可(写到这里的时候,我下载的是1.4.4的zip)
  2. 添加SVN_EDITOR环境变量,指定到一个可用的纯文本编辑器的路径(比如记事本,这一步是用来设置,当对仓库写操作的时候使用什么编辑器来输入操作注释的...顺带的,设置LANG=zh_CN.UTF8和APR_ICONV_PATH=svn安装目录\iconv,来解决在中文win下cmd中svn的乱码问题)
  3. 执行svnadmin create来创建一个仓库,比如
    1. svnadmin create e:/svn_repos
  4. 在cmd中执行这样的代码
    1. c create svnserve binpath= "[svnserve.exe的完整路径] --service --root [刚才建立的仓库的路径]" displayname= "Subversion"  depend= tcpip start= auto obj= "NT AUTHORITY\NetworkService"
    比如下边是我机器上执行的代码
    1. sc create svnserve binpath= "E:\svn-win32-1.4.4\bin\svnserve.exe --service --root E:\svn_repos" displayname= "Subversion" depend= tcpip start= auto obj= "NT AUTHORITY\NetworkService"
    如果发现执行错误了,可以用sc delete svnserve来删除这个服务,然后重新再来一次
  5. 到此为止,已经成为windows服务了.在开始->运行中输入services.msc后应该就能看到Subversion这个服务了,确认它启动起来吧
  6. 现在,就可以用svn ls svn://localhost来看看了

其实TortoiseSVN有建立仓库的选项,纯本地访问的时候,可以用"file://本地仓库路径"来直接访问...不需要服务器,不过就是只能本地访问罢了...

 

 来源:http://blog.linuxgem.org/doyle/show/146.html

 同样,当然可以用这个方法来把其它的注册为服务了。

这个方法应该也可以被黑客用来注册服务吧,只是容易会被熟悉系统服务的人发现:)

0 评论: