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功能则要 ...
随机推荐
- 国内可访问的稳定docker镜像
可参考:https://yeasy.gitbooks.io/docker_practice/content/install/mirror.html 但在debian 9上进行相应配置后,在pull镜像 ...
- js中“==”与“===”区别
直接上代码 if(2==='2'){ console.log(true) }else{ console.log(false) } //打印结果 false if(2=='2'){ console.lo ...
- SpringMVC整合freeMarker实现页面静态化+SpringMVC配置多视图
一.背景 1.什么是FreeMarker FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来生成HTML Web页面,特别是基于 ...
- redis优化
一.配置文件优化 bind 127.0.0.1 //允许连接的ip,如果就本机连接最后127.0.0.1 protected-mode yes //是否开启保护模式.默认开启,如果没有设置bind项的 ...
- 清北学堂part1
睡眠质量相当高的一天(滑稽) 整一整都学了啥 1:高精度(相当水,毕竟学过) 2:模运算(?! 这还要讲?) 3:快速幂(还要谢一位学习高数时间为我们讲解的同学...不得不说真的有效,快速幂已经是随手 ...
- Javascript初识之流程控制、函数和内置对象
一.JS流程控制 1. 1.if else var age = 19; if (age > 18){ console.log("成年了"); }else { console. ...
- C++ Under the Hood
The original article is taken from http://msdn.microsoft.com/archive/en-us/dnarvc/html/jangrayhood.a ...
- 配置sudo记录日志
sudosudo命令用来以其他身份来执行命令,预设的身份为root.在/etc/sudoers中设置了可执行sudo指令的用户.若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员.用户使用 ...
- 13-jQuery的ajax
什么是ajax AJAX = 异步的javascript和XML(Asynchronous Javascript and XML) 简言之,在不重载整个网页的情况下,AJAX通过后台加载数据,并在网页 ...
- [jzoj]4271. 【NOIP2015模拟10.27】魔法阵(37种转移的dp)
题意不说 应该这辈子都不会忘记了... 这是我人生中做的最SB的一道DP题. 真的打的我心态崩了.... 可是竟然被我调出来了..... 也是没谁了... 我们设\(F[i][j][S]\)表示到第\ ...