Windows平台下结合 tortoiseSVN 和 VisualSVN Server 搭建SVN服务器并实现 web 站点同步
1. tortoiseSVN
关于 tortoiseSVN 的安装使用详见博文 TortoiseSVN的安装及其简单使用。
2. VisualSVN Server
关于 VisualSVN Server 的安装使用详见博文 VisualSVN-Server服务器的搭建。
或参考 VisualSVN Server的配置和使用方法(转)。
另外需要说明的是,VisualSVN Server 中 tag branch trunk用法,官方并没有给出严格的限制,可参考如下2篇博文:
3. 实现 web 站点同步
在此之前,首先参考阅读 windows下SVN服务器与web 站点的同步。
在web开发过程中,svn客户端将修改提交至服务器后,在默认代码仓库(Repositories)中是无法看到文件的实际目录结构的,比如对于开发项目keys,本地看到的文件目录如下图。

而于服务器端的 Repositories 文件中看到的文件目录如下图。

它并非实际项目文档,而是版本控制相关文件。此时为了在服务器端获得同客户端相同的文档目录,需要在服务器指定一个路径,并以tortoiseSVN checkout。至此在服务器端也获得了同样文件。

对于个人开发,为了实现提交代码后实时预览修改效果,需要能够在服务端自动 checkout,基于 VisualSVN Server 与 .bat 文件实现方法如下:
1. 以项目keys为例,复制 hooks下的 post-commit.tmpl 模板,并修改后缀名为 .bat。

2. 将 post-commit.bat 中文本内容修改为
"C:\Program Files\VisualSVN Server\bin\svn.exe" update "C:\websites\keys" --quiet --username "UserName" --password "Password"
其中 "C:\Program Files\VisualSVN Server\bin\svn.exe" 为可执行程序 svn.exe 的路径,"C:\websites\keys" 为同步目标路径。
注意:用户名和密码文本的上的双引号不能略去。
3. 最关键的一步:就是svn服务端权限的问题;
否则可能会出现下列错误: post-commit hook failed (exit code 1) with output:
svn: E155004: Working copy 'D:\www\Test' locked
svn: E200031: sqlite: attempt to write a readonly database svn: E200031: sqlite: attempt to write a readonly database
svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)
原因是Visual SVN Server服务的执行权限不够,不能对指定目录做读写操作。解决办法,修改Visual SVN Server 。
简单操作 win+R 运行 services.msc 找到visual svn server 服务 右键属性 登陆面板 设置桌面交互或者管理员权限再试。

4. 至此,若在客户端修改文件并提交至服务器后,对应站点目录下的文件也同步更新。
4. 补充
如果服务端文档目录名修改(如 keys 修改为 keys_new),或将原文档目录删除,另外新建同名目录/文件夹并checkout于 VisualSVN Server,只需修改服务端 Reporsitories 下的目录名(即 keys 修改为 keys_new)。
Windows平台下结合 tortoiseSVN 和 VisualSVN Server 搭建SVN服务器并实现 web 站点同步的更多相关文章
- 【转】Windows(server2008)下使用VisualSVN Server搭建SVN服务器
参考文献 1.Windows下使用VisualSVN Server搭建SVN服务器(百度经验) 挺好就是没有配图已验证可用 2.在Windows Server 2008上部署SVN代码管理器 把第二 ...
- Windows10环境下使用VisualSVN server搭建SVN服务器
参考: Windows10环境下使用VisualSVN server搭建SVN服务器 要搭建个svn用.之前自己的服务器用的乌龟.后来用了这个VisualSVN server. 具体教程见上链接.暂无 ...
- (转)TortoiseSVN与VisualSVN Server搭建SVN版本控制系统
本片主要介绍如何搭建SVN版本控制系统,主要使用工具: 1 客户端:TortoiseSVN (小乌龟) 2 服务端:VisualSVN Server 搭建出图形化管理,以及右键菜单版本控制管理的SVN ...
- TortoiseSVN与VisualSVN Server搭建SVN版本控制系统
本片主要介绍如何搭建SVN版本控制系统,主要使用工具: 1 客户端:TortoiseSVN (小乌龟) 2 服务端:VisualSVN Server 搭建出图形化管理,以及右键菜单版本控制管理的SVN ...
- TortoiseSVN与VisualSVN Server搭建SVN版本控制系统【转】
转自:http://www.cnblogs.com/xing901022/p/4399382.html 本片主要介绍如何搭建SVN版本控制系统,主要使用工具: 1 客户端:TortoiseSVN (小 ...
- Windows下使用VisualSVN Server搭建SVN服务器
使用 VisualSVN Server来实现主要的 SVN功能则要比使用原始的 SVN和 Apache相配合来实现源代码的 SVN管理简单的多,下面就看看详细的说明. VisualSVN Server ...
- 1.Windows下使用VisualSVN Server搭建SVN服务器
使用 VisualSVN Server来实现主要的 SVN功能则要比使用原始的 SVN和Apache相配合来实现源代码的 SVN管理简单的多,下面就看看详细的说明. VisualSVN Server的 ...
- 使用VisualSVN Server搭建SVN服务器
工具: TortoiseSVN-1.8.4.24972-x64-svn-1.8.5(客户端) LanguagePack_1.8.4.24972-x64-zh_CN.msi Setup-Subversi ...
- 使用VisualSVN Server搭建SVN服务器(转载)
转载于http://www.cnblogs.com/greywolf/archive/2013/01/28/2879952.html 使用 VisualSVN Server来实现主要的 SVN功能则要 ...
随机推荐
- TypeError: 'Item' object has no attribute '__getitem__'
Error Msg: Traceback (most recent call last): File "start.py", line 8, in <module> E ...
- JavaScript验证输入的字符是否包含表情
以下是验证代码: function isEmojiCharacter(substring) { for ( var i = 0; i < substring.length; i++) { var ...
- jexus部署webapi或mvc报错处理
1路径错误:因为Windows和Linux的路径问题大小写问题. 解决: 修改jexus下的jws把export MONO_IOMAP=all注释去掉放出来. 2, 解决: 卸载
- PHP整洁之道
摘录自 Robert C. Martin的Clean Code 书中的软件工程师的原则 ,适用于PHP. 这不是风格指南. 这是一个关于开发可读.可复用并且可重构的PHP软件指南. 并不是这里所有的原 ...
- SpringBoot配置devtools实现热部署
spring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用. devtool ...
- synchronized详解
关于synchronized,本文从使用方法,底层原理和锁的升级优化这几个方面来介绍. 1.synchronized的使用: synchronized可以保证在同一时刻,只有一个线程可以操作共享变量, ...
- java学习之—实现一个简单的ArrayList
package thread1; /** * 实现一个简单的ArrayList * * @Title: uminton */ public class SimpleArrayList<T> ...
- 【Machine Translation】CMU的NMT教程论文:最全面的神经机器翻译学习教程
这是一篇CMU发的神经机器翻译教程论文,很全很详细,适合新手阅读,即使没有什么MT.DNN.RNN的基础知识. 另外它还配套了CMU自己的一个框架DyNet的练习. 全文共9章,从统计语言模型到DNN ...
- 一分钟学会JavaMail(假)__手动滑稽
因为公司内部办公系统(OA)需要增加一个发送邮件的功能,所以学习了这个感觉比较冷门的JavaMail 1.先上成功截图 : 2.准备事项:Java Mail虽然是官方写的,但是没有集成到jdk里面 ...
- 用expect实现SCP/SSH自动输入密码登录
在命令行ssh远程登录服务器和scp远程传输文件都需要交互式输入密码,无法像mysql登录数据库 mysql -uroot -p123456一样直接完成. 其实可以用脚本依赖expect来达到这一目的 ...