实现svn副本同步的两种方法
2010-08-23 16:56
169 查看
由于项目需要将每个员工开发的程序实时更新到web站点目录,实现svn副本同步,有幸管理了一下svn。。^_^
查找了一些资料,普遍存在的一种方法是使用钩子原理。
至于该方法的原理,咱就不深究了。大致做法如下:
建立版本库,并在子目录hooks下新建批处理文件post-commit.bat,
文件内容为:
@echo off
SET REPOS=%1
SET REV=%2
SET DIR=%REPOS%/hooks
SET
PATH=%PATH%;
SET WORKING_COPY=D:/workspace/vcmoa
svn update %WORKING_COPY%
--username #### --password ####
(密码和帐户别照搬啊,写你自己的。)
至此,所有更新到达版本库后,都将自动被更新到web站点目录。
唯一的遗憾是,客户端上传的速度大大减小,对于几百M甚至几G的程序源码版本库,上传等待简直是一个折磨。
经过一番考虑,本人终于想出来一个笨方法,既可以将版本库更新到站点目录,又不影响每个人的上传速度。
处理如下:
建立批处理文件update.bat,内容为:
@echo off
echo 正在更新文件,请稍等......
svn update "D:/workspace/vcmoa" --username #### --password ###
echo 更新文件文件完成!
发现没有,就是直接使用update命令而已,不再关联什么钩子了。
当然,建立了bat文件后,还要结合windows系统的任务计划功能,把这个bat创建为一个计划,时隔5-10分钟(主要看项目大小、上传频率)。
至此,比较完美的一个同步方法算是成功设计好了。。
为什么只是比较完美呢?
如果项目有些特别的话,比如站点下某些文件会自动被站点容器修改的话,那么自动更新会失败!!
所以,还需要在更新之前先对站点目录进行清理(当然是clean up命令了)。修改bat文件如下:
@echo off
echo 正在解除锁定,请稍等......
svn cleanup "D:/workspace/vcmoa"
echo 正在更新文件,请稍等......
svn update "D:/workspace/vcmoa" --username #### --password ###
echo 更新文件文件完成!
这个是我个人实践出来的方法,很笨,但是很好用。。
以上"D:/workspace/vcmoa"是站点目录,根据实际修改。
查找了一些资料,普遍存在的一种方法是使用钩子原理。
至于该方法的原理,咱就不深究了。大致做法如下:
建立版本库,并在子目录hooks下新建批处理文件post-commit.bat,
文件内容为:
@echo off
SET REPOS=%1
SET REV=%2
SET DIR=%REPOS%/hooks
SET
PATH=%PATH%;
SET WORKING_COPY=D:/workspace/vcmoa
svn update %WORKING_COPY%
--username #### --password ####
(密码和帐户别照搬啊,写你自己的。)
至此,所有更新到达版本库后,都将自动被更新到web站点目录。
唯一的遗憾是,客户端上传的速度大大减小,对于几百M甚至几G的程序源码版本库,上传等待简直是一个折磨。
经过一番考虑,本人终于想出来一个笨方法,既可以将版本库更新到站点目录,又不影响每个人的上传速度。
处理如下:
建立批处理文件update.bat,内容为:
@echo off
echo 正在更新文件,请稍等......
svn update "D:/workspace/vcmoa" --username #### --password ###
echo 更新文件文件完成!
发现没有,就是直接使用update命令而已,不再关联什么钩子了。
当然,建立了bat文件后,还要结合windows系统的任务计划功能,把这个bat创建为一个计划,时隔5-10分钟(主要看项目大小、上传频率)。
至此,比较完美的一个同步方法算是成功设计好了。。
为什么只是比较完美呢?
如果项目有些特别的话,比如站点下某些文件会自动被站点容器修改的话,那么自动更新会失败!!
所以,还需要在更新之前先对站点目录进行清理(当然是clean up命令了)。修改bat文件如下:
@echo off
echo 正在解除锁定,请稍等......
svn cleanup "D:/workspace/vcmoa"
echo 正在更新文件,请稍等......
svn update "D:/workspace/vcmoa" --username #### --password ###
echo 更新文件文件完成!
这个是我个人实践出来的方法,很笨,但是很好用。。
以上"D:/workspace/vcmoa"是站点目录,根据实际修改。
相关文章推荐
- 线程通讯和同步的两种实现方法
- 实现数据库同步的两种方法,SQL JOB和发布订阅
- 两种方法实现Windows系统服务自动运行SVN
- Android中两种不同的方法实现实时更新时间,是显示时间和系统时间同步
- 黑马程序员_同步的两种实现方法
- 生产者与消费者问题是典型的同步问题。这里简单介绍两种不同的实现方法。
- cc150:使用两个栈实现一个队列(两种方法比较)
- 解决C# winForm自定义鼠标样式的两种实现方法详解
- 实现iOS长时间后台的两种方法:Audiosession和VOIP
- 两种方法实现在HTML页面加载完毕后运行某个js
- python 获取本机ip地址的两种实现方法
- Android 文字自动滚动(跑马灯)效果的两种实现方法[特别好使]
- Android驱动(二)串口操作之tiny4412开发板实现串口通讯的两种方法
- Android两种不同的方法去实现图像的放大与缩小
- 详解Yii实现分页的两种方法
- 实现多线程的两种方法(转自:http://www.2cto.com/kf/201507/423032.html)
- 两种方法实现在HTML页面加载完毕后运行某个js
- java 定时器实现的两种方法
- C#实现Web文件上传的两种方法
- 什么是线程同步?实现同步机制有哪些方法?