windows 下架设svn服务器

一、准备工作

1、获取 Subversion 服务器程序

到官方网站(http://www.collab.net/downloads/subversion )下载最新的服务器安装程序。目前最新的是1.7.7版本.


2、获取 TortoiseSVN 客户端程序
从官方网站 http://tortoisesvn.net/downloads 获取最新的 TortoiseSVN 。TortoiseSVN 是一个客户端程序,用来与 subvers 服务器端通讯。Subversion 自带一个客户端程序 svn.exe ,但 TortoiseSVN 更好操作,提高效率。

二、安装服务器端和客户端


安装 Subversion(以下简称SVN)的服务器端和客户端。下载下来的服务器端是个 zip 压缩包,直接解压缩即可,比如我解压到 E:\subversion 。客户端安装文件是个 exe 可执行文件,直接运行按提示安装即可,客户端安装完成后提示重启。

三、建立版本库(Repository)

运行Subversion服务器需要首先要建立一个版本库(Repository)。版本库可以看作是服务器上集中存放和管理数据的地方。
开始建立版本库。首先建立 e:\svn 空文件夹作为所有版本库的根目录。然后,进入命令行并切换到subversion的bin目录。输入如下命令:
svnadmin create E:\svn\repos1
此命令在 E:\svn 下建立一个版本库 repos1 。repos1 下面会自动生成一些文件夹和文件。
我们也可以使用 TortoiseSVN 图形化的完成这一步:
先建立空目录 E:\svn\repos1 ,注意一定是要空的。然后在 repos1 文件夹上“右键->TortoiseSVN->Create Repository here...”,然后可以选择版本库模式,这里使用默认的FSFS即可,然后就创建了一系列文件夹和文件,同命令行建立的一样。

四、运行独立服务器

此时 subversion 服务还没有开始,只是通过它的命令建立了版本库。继续在刚才的命令窗口输入:
svnserve.exe --daemon
svnserve 将会在端口 3690 等待请求,--daemon(两个短横线)选项告诉 svnserve 以守护进程方式运行,这样在手动终止之前不会退出。注意不要关闭命令行窗口,关闭窗口会把 svnserve 停止。
为了验证svnserve正常工作,使用TortoiseSVN -> Repo-browser 来查看版本库。在弹出的 URL 对话框中输入:
svn://localhost/svn/repos1
点 OK 按钮后就可以看见 repos1 版本库的目录树结构了,只不过这时 repos1 是个空库。
你也可以使用--root选项设置根位置来限制服务器的访问目录,从而增加安全性和节约输入svnserve URL的时间:
svnserve.exe --daemon --root drive:\path\to\repository
以前面的测试作为例,svnserve 将会运行为:
svnserve.exe --daemon --root e:\svn
然后TortoiseSVN中的版本库浏览器URL缩减为:
svn://localhost/repos1

 你可能会问这样岂不是每次启动SVN服务器都要输入一次命令?怎样才能让SVN服务器在开机的时候自动启动呢?答案就是将SVN服务注册到Windows系统服务,在Windows命令提示符里执行命令 
sc create SVN binpath= "\"d:\subversion\bin\svnserve.exe\" --service -r F:\SVN" displayname= "SVN Service" depend= Tcpip start= auto,这个命令是不是有点长?其实很容易理解,sc是Windows自带的系统服务注册工具,微软支持中心提供了详细的说明,这里我就不再复述了,参数binpath= "\"d:\subversion\bin\svnserve.exe\" --service -r F:\SVN"和我们前面手动启动SVN服务器的命令很像吧?只是把-d改成了--service,这不难理解,因为现在是服务嘛。好了,现在已经大功告成了,重起一下试试吧。 

PS:如果想从系统服务里删除刚才注册的SVN服务可以使用sc delete SVN命令。


五、配置用户和权限
用文本编辑器打开E:\svn\repos1\conf目录,修改svnserve.conf:
将:
# password-db = passwd
改为:
password-db = passwd
即去掉前面的 # 注释符,注意前面不能有空格。
然后修改同目录的passwd文件,增加一个帐号:
将:
[users]
# harry = harryssecret
# sally = sallyssecret
增加帐号:
[users]
#harry = harryssecret
#sally = sallyssecret

test = test


六、初始化导入


下面就是将我们的数据(项目)导入到这个版本库,以后就由版本库管理我们的数据。我们的任何改动都回被版本库记录下来,甚至我们自己丢失、改错数据时版本库也能帮我们找回数据。
比如,我在 d:\wwwroot 下有个 guestbook 文件夹,里面存放的是我编写的留言簿程序。在此文件夹上“右键 -> TortoiseSVN -> Import...” ,在弹出对话框的“URL of repository”输入“svn://localhost/repos1/guestbook”。在“Import message”输入“导入整个留言簿”作为注释。
点 OK 后要求输入帐号。我们在用户名和密码处都输入 test 。完成后 guestbook 中的内容全部导入到了 svn://localhost/svn/repos1/guestbook 。
我们看到在 e:\svn\repos1 没有任何变化,连个 guestbook 文件夹都没有建立,唯一的变化就是e:\svn\repos1容量变大了。实际上我们源guestbook中的内容已经导入 repos1 版本库了,源 guestbook 文件夹可以删除了。

需要注意的是,这一步操作可以完全在另一台安装了 TortoiseSVN 的客户机上进行。例如运行svnserve的主机的IP是133.96.121.22,则URL部分输入的内容就是“svn://133.96.121.22” 。


七、基本操作流程


1、取出(check out)
取出版本库到一个工作拷贝:

来到任意空目录下,比如在f分区建立一个空文件夹 f:\work 。“右键 -> SVN Checkout”。在“URL of repository”中输入“svn://localhost/svn/repos1/guestbook”,这样我们就得到了一份 guestbook 中内容的工作拷贝。


2、存入(check in)/提交(commit)
在工作拷贝中作出修改并提交:
在 guestbook 工作拷贝中随便打开一个文件,作出修改,然后“右键 -> SVN Commit... ”。这样我们就把修改提交到了版本库,版本库根据情况存储我们提交的数据。
在修改过的文件上“右键 -> TortoiseSVN -> Show Log” ,可以看到对这个文件所有的提交。在不同的 revision 条目上“右键 -> Compare with working copy”,我们可以比较工作拷贝的文件和所选 revision 版本的区别。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570104.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最简单的nginx教程 - 如何把一个web应用部署到nginx上

Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。Nginx是由伊戈尔赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日…

Linux下tomcat的配置

1、安装JDK文件双击jdk-6u33-linux-x64.bin,以以终端方式运行,安装在opt文件夹下在root用户 下,首先添加执行权限代码 chmod x jdk-6u29-linux-i586-rpm.bin 然后执行 ./jdk-6u29-linux-i586-rpm.bin 2.将tomcat解压出来,放在…

修理牧场(哈夫曼树 )

农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数L​i​​个长度单位,于是他购买了一条很长的、能锯成N块的木头,即该木头的长度是L​i​​的总和。 但是农夫自己没有锯子,请人锯…

修改FTP服务器端口后无法访问

如果将FTP服务器原先的端口21修改成其他的端口号,那么访问FTP服务器的方式只能是主动访问如果是用浏览器,那么设置如下:打开浏览器,找到“菜单栏”——“工具”——“Internet 选项” ——“高级”,会看到“使用被动FT…

Median(二分+二分)

Median http://poj.org/problem?id3579 Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 11225 Accepted: 4016Description Given N numbers, X1, X2, ... , XN, let us calculate the difference of every pair of numbers: ∣Xi - Xj∣ (1 ≤ i < j …

VNCServer在Linux下设置

1.检查vnc客户端和服务器是否已经安装: [rootcentos ~]$ rpm -q vnc-server package vnc-server is not installed 说明没有安装 运行yum install vnc-server进行安装 vnc-server-4.0-8.1 说明安装已经安装了 只是没开启服务而已 2. 将用户名称加入到配置…

Judy alpha 第七天

SCRUM 今天 debugger 部分由 Yu Xing 继续完成断点功能,由 Zhiqi Lin 开始实现查看变量功能。项目整体打包测试仍有困难,VS Code extension 的文档质量不佳,大家感到难以调试。成员昨日进展今日任务Zibo Wang协助打包、追踪开发进度协助打包、…

c++教程下载

孙鑫C视频教程 rmvb格式 全20CD完整版http://bbs.topsage.com/dispbbs.asp?boardID121&ID156290C视频教程 边用边学Visual C 6 (ASF格式)http://bbs.topsage.com/dispbbs.asp?boardID121&ID177500中山大学蔡培兴 C语言视频教程 全51讲 精品推荐 http://bbs.topsage.c…

Phaser3让超级玛丽实现轻跳、高跳及加上对应的跳跃声音

mario jumper在线测试地址&#xff1a;http://www.ifiero.com/uploads/phaserjs3/jumper/ 空格键&#xff1a;轻按&#xff1a;跳低 &#xff0c;长按&#xff1a;跳高键盘&#xff1a;--> 向右 , <-- 向左 请确保已打开电脑的音乐开关 var config {type: Phaser.AUTO,w…

linux下文件删除不了

在linux系统下当删除文件时提示无法操作&#xff0c;有可能是文件被使用了chattr改变了属性。可以使用lsattr命令来查看 [rootlinux236 root]# lsattr   ---i---------- ./1.txt   -------------- ./weiqi.ldif -------------- ./qi.schema 以上可以看出1.txt文件被添加了…

struts2配置问题

struts2.2.1之后的版本除了commons-fileupload-1.3、commons-io-2.2、freemarker-2.3.19、javassist-3.11.0.GA、ognl-3.0.6、struts2-core-2.3.16、xwork-core-2.3.16之外&#xff0c;还需要commons-lang3-3.1才能正常运行

linux IptabLex 攻击

以下摘自某位老兄的文章&#xff0c;遇到问题一样&#xff0c;不知道是否是新出的病毒IptabLex大家都知道&#xff0c;互联网每时每刻都会存在攻击的可能性&#xff0c;&#xff08;系统频繁发包&#xff0c;SYN攻击&#xff0c;等等&#xff09;安全问题是系统管理员不可忽视的…

MySQL各个版本区别

MySQL 的官网下载地址&#xff1a;http://www.mysql.com/downloads/在这个下载界面会有几个版本的选择:1. MySQL Community Server 社区版本&#xff0c;开源免费&#xff0c;但不提供官方技术支持。2. MySQL Enterprise Edition 企业版本&#xff0c;需付费&#xff0c;可以试…

GIT和GitHub的使用总结

目录 一、GIT初始化设置&#xff1a;创建密钥添加远程仓库用户名邮箱配置Clone远程仓库创建本地仓库代理设置自定义操作二、GIT基本操作添加到暂存区区提交删除版本回退撤销修改三、GIT分支操作创建分支分支合并分支推送分支绑定分支删除stash功能四、GIT标签操作本地操作远程操…

分析MySQL数据类型的长度

分析MySQL数据类型的长度 MySQL有几种数据类型可以限制类型的"长度"&#xff0c;有CHAR(Length)、VARCHAR(Length)、TINYINT(Length)、SMALLINT(Length)、MEDIUMINT(Length)、INT(Length)、BIGINT(Length)、FLOAT(Length, Decimals)、DOUBLE(Length, Decimals)和DECI…

Mysql partition by

一&#xff0c;看原表 select * from user; 二&#xff0c;查询同组年级最大的 select username ,SUBSTRING_INDEX( GROUP_CONCAT(age order by age desc) ,,,1) uuid from ( select uuid ,username ,password ,age from user )b GROUP BY uuid asc; 转载于:https://www.cn…

tomcat内存溢出,修改设置

问题描述&#xff1a; 1. java.lang.OutOfMemoryError: Java heap space JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值&#xff0c;其初始空间(即-Xms)是物理内存的1/64&#xff0c;最大空间(-Xmx)是物理内存的…

Mysql导入大容量SQL文件数据问题

mysql在通过导入sql文件可能会出现下面二个问题:1.如果sql文件过大,会出现"MySQL server has gone away"问题;2.如果sql文件数据有中文,会出现乱码 解决问题:问题1:出现MySQL server has gone away"问题,是因为mysql默认的"max_allowed_packet"变量…

电脑的引导启动快捷键

组装机主板品牌笔记本品牌台式机主板品牌启动按键笔记本品牌启动按键台式机品牌启动按键华硕主板F8联想笔记本F12联想台式机F12技嘉主板F12宏基笔记本F12惠普台式机F12微星主板F11华硕笔记本ESC宏基台式机F12映泰主板F9惠普笔记本F9戴尔台式机ESC梅捷主板ESC或F12联想ThinkpadF…

swift 4.2 - 根据字符串 push指定控制器

俩个方法 1. 创建类写成 类方法 import UIKit /** 注释&#xff1a;获得VC* 1.字符串 和使用的控制器&#xff0c;直接跳转* 2.用过字符串获得对应VC*/ class JYGetPushVc: NSObject {/// 指定字符串VC跳转,设置titlestatic func pushVcByVcNameAndTitle(pushVcNameStr:String…