A. 如何利用svn自动同步更新到网站服务器
一、安装 SVN服务器程序
1.1运行 VisualSVN-Server-1.7.2.msi
1.2选择程序安装目录 和 SVN仓库目录
我程序装在 C:\Program Files\VisualSVN Server , SVN仓库目录在 D:\SVN
1.3 安装完成,立即运行
二、服务器配置
2.1服务器维护界面
2.2仓库目录默认的内容
2.3创建新项目wapzucom
2.3创建用户ve
2.4设置项目的用户权限
Properties Security Add 选择刚创建的用户 ve ok 应用 确认
三、创建测试服务器目录 D:\WWWROOT ,本地开发目录 D:\WORKDIR
四、将代码(D:\Code )导入到项目仓库
输入用户名 密码 并 勾选 保存认证
导入成功,并返回版本号1
五、导出项目代码到工作副本、测试服务器目录
同理,另外导出一份到测试服务器目录D:\WWWROOT (测试服务器的Apache目录指向该位置)
六、使用Hooks自动更新测试服务器代码D:\WWWROOT
6.1 进入 D:\SVN\wapzucom\hooks 建立 post-commit.bat 文件
编辑其内容 为"C:\Program Files\VisualSVN Server\bin\svn.exe" update "D:\www\test" --quiet --username name --password pwd
或者可参考下面这段话:
接下来最关键的一步是,我们需要找到服务器上安装的版本库的路径下面,以版本库名称命名的文件夹下,有一个名字为hooks的文件夹,在这个文件夹下建立post-commit.bat这样一个批处理文件,里面的内容如下:
@echo off
“D:\VisualSVN Server\bin\svn.exe” update “D:\Apache Software Foundation\Apache2.2\htdocs\soupei360″ _username XXXXX _password XXXXX
update前面的路径,是SVN服务器端程序的执行文件路径, 后面的是在服务器上同步到的目录的路径,username和password后面是刚才建立用户的用户名和密码,这段批处理的意思是,当我们在本地编写代码,然后通过svn的commit提交时候,首先提交到版本库中,然后版本库自动用这个批处理,把内容同步到服务器上之前指定的文件夹中,从而实现本地和远程同步操作。
两款SVN配置软件的具体配置教程可以通过搜索引擎得到具体设置方法,在此需要特意强调的是,一定要将本地和服务器上的目录都check out后,批处理才能够自动同步,服务器上的目标文件夹没有check out的话,即使设置的路径正确,也是不能同步的。
6.2 设置访问权限
我的电脑 右键 管理 服务和应用程序 服务 VisualSVN Server 右键 属性 登陆 添加访问权限 用系统管理员账号(我这里是user)
重启服务器
6.3测试Hooks工作是否正常
修改 index.php 状态
提交修改
最后打开D:\WWWROOT\index.php 可以发现代码已经被成功update
PS : 目录说明
C:\Program Files\VisualSVN Server 服务器安装目录
D:\SVN 仓库更目录
D:\WORKDIR 本地开发用的工作目录
D:\WWWROOT 服务器测试目录(Apache 指向该目录,即可实现工作目录内容修改后提交到SVN自动发布到测试目录)
B. 如何做SVN迁移
SVN迁移可能有很多原因, 可能是我们想换Repository目录, 或者是想换一台机器, 等等.
SVN迁移很容易做, 按照下面步骤就可以:
1. 将原来的Repository导出羡核余为一个文件mpfile
> svnadmin mp path/to/old-repo > mpfile
2. 创建新的Repository, 创建方法可以参考 Windows 平台安装Subversion server
3. 将mpfile导入到新的Repository
> svnadmin load path/to/new-repo < mpfile
4. 检查新的Repository的conf/目录下的配置文件, 检查hooks/目录下的构子程序等等...
本机SVN的快速迁移方法:(感谢R2的提示)
svnadmin hot old_rep_path new_rep_path
-----------------------------------------------------
两台服务器,进行SVN的迁移:
系统平台:windows server 2003
版本库:test
源服务器:192.168.1.14
目标服务器:192.168.1.12
源SVN版本库的path: D:\svn\test
要迁移到的path: E:\svn\test
第一种方法:(推荐)
首先说明:这个目标服务器上的SVN是可以用,本文中只是将它们的版本库进行
迁移。
1.停止http服务,本文中用的是apache (源服务器)(目标服务器)
2.cd C:\Program Files\Subversion\bin(Subversion的氏察安装目录)(源服务器)
3.执行:svnadmin mp D:\svn\test >D:\svn\test\test.mp(源服务器)
4. 在E盘中建立一个同名的test的文件夹(目标服务器)
5.cd C:\Program Files\Subversion\bin(目标服务器)
6.svnadmin create E:\svn\test (目标服务器)
7. 测试此test版本库是否可以用,如果可以用。再做下面的操作(目标服务器)
《要把在源服务器上导出的test.mp文件目标服务器上》
8.Svnadmin load E:\svn\test < c:\svn\test\test.mp (目标服务器。这个只是将源服务器上导出的版本库,导入兄滚到现在的服务器上。)
9. 修改http配置文件和修改权限,也可以将原来的权限文件直接到新的版本库中。(目标服务器)
第二种方法:
1.停止http服务,我用的是apache
2.把D:\svn\test下面的所有的文件到192.168.1.12的E:\svn\test
3. 修改apache中的文件路径,写入新的文件路径
4.打开http服务,但是这种做法的条件是:SVN旧版本库的操作环境系统和新版本操作环境系统相同,而且SVN的版本相同。
5.在本地复制的版本库,右键---TortoiseSVN --- Relocate,在弹出的框框内,重新输入版本库的ip地址。
C. TortoiseSVN的服务器如何转移到另一台电脑
简单的带消办法就是备份库,卸载VisualSVN Server,硬盘宽行哗拿过去后再重新安装VisualSVN Server
然后再慎行还原库。