分类: 项目管理
2011-09-28 08:28:17
【虎.无名】最近忙于定义异步服务器框架原型,初始阶段的包名、类名都不稳定,经常调整。而cvs是针对文件级的,对目录重构支持很不好,文件大小写重构也有问题。于是下定决心改用svn了,从安装过程来看,也比cvsnt要简单。
1,下载Subversion 服务器程序:svn-win32-1.5.5.zip(http://subversion.tigris.org/files/documents/15/44589/svn-win32-1.5.5.zip) 并解压到E:\svn-win32-1.5.5。并将E:\svn-win32-1.5.5加入环境变量的path路径。
2,手工创建一个repos1存储库:
svnadmin create E:\svn\repos1
3,创建脚本svnserver.bat定义如下:
svn.exe --version --quiet
svnserve.exe --version
svnserve.exe --daemon --root e:\svn
@echo 访问地址 svn://10.10.41.220/repos1
4,我没有安装TortoiseSVN,而是直接在eclipse3.3中安装subclipse插件(1.4.x),插件安装地址为
5,修改配置文件E:\svn\repos1\conf\svnserve.conf 去掉“password-db = passwd”前的#和空格;
6,修改配置文件E:\svn\repos1\conf\passwd 定义用户名和密码;
7,启动svnserver.bat脚本,在eclipse的操作方式,和操作cvs类似。
注意,如果需要创建windows自动运行的服务,命令如下:
sc create SVNServer binpath= "E:\svn-win32-1.5.5\bin\svnserve.exe --service --root e:\svn" displayname= "Subversion" depend= tcpip start= auto
注意:也可用VisualSVNServer()图像工具来操作,不过个人不建议,因为安装本来就不复杂。
--- 参考
技术交流\20071126:SVN使用讲解(赵宇红)初级.pdf
在eclipse中安装subclipse插件
Name: Subclipse 1.4.x (Eclipse 3.2+)
URL:
Name: Subclipse 1.2.x (Eclipse 3.2+)
URL:
Name: Subclipse 1.0.x (Eclipse 3.0/3.1)
URL:
http://www.cnblogs.com/phinecos/archive/2008/07/08/1238311.html Windows下搭建Subversion 服务器
一、准备工作
1、获取 Subversion 服务器程序: 到官方网站()下载最新的服务器安装程序。目前最新的是1.5.5版本,具体下载地址在:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100&expandFolder=8100&folderID=91
2、获取 TortoiseSVN 客户端程序:从官方网站 获取最新的 TortoiseSVN 。TortoiseSVN 是一个客户端程序,用来与 subvers 服务器端通讯。Subversion 自带一个客户端程序 svn.exe ,但 TortoiseSVN 更好操作,提高效率。【虎.无名:TortoiseSVN需要关联资源管理器的右键菜单,需要修改注册表,比较麻烦,不必要安装。】
二、安装服务器端和客户端【虎.无名,可在Eclipse中通过url在线安装。】
安装 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
五、配置用户和权限
用文本编辑器打开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 版本的区别。
搭建SVN服务器,控制你杂乱的代码库
创建svnserve.exe的服务,以便系统启动时自动启动。命令为:
sc create SVNServer binpath= "D:Program Filessvnbinsvnserve.exe --service --root D:WorksSVN" displayname= "Subversion" depend= tcpip start= auto
http://zhuzhsh.javaeye.com/blog/252279 Window系统下使用VisualSVNServer搭建SVN服务器
http://space.xzcn.com/1000006/blog/show/ec0bfd000f253eff3acb1043e1c06979.html 将Subversion(svn) 安装成为windows service服务 (2007-09-18 17:54)
以前的svnserve要想成为windows服务,必须依赖于svnservice或其他工具。从Subversion1.4开始,Subversion本身就集成Windows服务的工具。
1,安装svnservice在Windows NT中(包括Windows XP, Windows 2000, Windows 2003 Server)本身包含了一个安装服务的工具,叫做"Service Control",也就是sc.exe。例如我的Subversion安装在"D:\Subversion",版本库在"D:\svnroot",而我希望对应的Subversion服务名为svnservice,安装这个svn服务的命令就可以这样写:
sc create svnservice
binpath= "D:\Subversion\bin\svnserve.exe --service -r D:\svnroot" displayname= "SVNService" depend= Tcpip 【虎.无名:应该是 -r "D:\svnroot",注意引号】
请注意,因为便于察看,上面的命令分为多行,但在实际执行时应该在一行里。另外,在以前启动svnserve时会使用"-d"选项,也就是守护进程模式,在这里不能使用,会导致服务无法启动。同样,"-i"和"-t"选项也不能使用。
在命令行窗口执行完这个命令之后,服务还没有启动,你可以继续运行"net start svnservice"启动这个服务,然后使用"net stop svnservice"停止服务。
另外还有两点需要小心处理。首先,如果路径中包括空格,一定要用“\”处理“"”号,例如上面的例子中如果svnserve.exe在“c:\program files\subversion\”中,则命令应该写为“binpath= "\"c:\program files\subversion\bin\svnserve.exe\"”(“”中的内容),整个命令如下,红色部分是改变部分:
sc create svnservice binpath= "\"D:\program files\Subversion\bin\svnserve.exe\" --service -r D:\svnroot"
displayname= "SVNService" depend= Tcpip
其次,sc对选项的格式还有要求,例如“depend= Tcpip”不能写为“depend = Tcpip”或“depend=Tcpip”,也就是“=”前不能有空各,而后面必须有空格。
2,删除服务如果服务安装的有问题,你可能需要删除服务。要删除前面添加的服务,只需要运行"sc delete svnservice","svnservice"就是我们创建服务时使用的名字。
3,配置服务是自动启动默认情况下安装的服务不会随Windows的启动而启动,为了使svn服务能够随Windows启动而启动,需要修改一下"sc create"命令(首先要删除),增加"start= auto"选项:
sc create svnservice
binpath= "D:\Subversion\bin\svnserve.exe --service -r "D:\svnroot" displayname= "SVNService" depend= Tcpip start= auto
当然你也可以使用图形化的工具修改服务的属性,你可以在“开始->运行...”中执行"services.msc",然后在界面中修改。
链接:关于sc安装svn服务的详细信息,可以看看这篇文章:
实例:sc create svnservice binpath= "\"D:\Program Files\Subversion\bin\svnserve.exe\" --service -r E:\svnServer" displayname= "SVNService" depend= Tcpip