`
cuiyadll
  • 浏览: 204630 次
文章分类
社区版块
存档分类
最新评论

svn利用钩子实现代码同步到web目录

    博客分类:
  • svn
 
阅读更多
思路: 
找 到SVN Server中的仓库(Repositories)文件夹的位置,在相应的项目文件夹中找到hooks文件夹。在该文件夹中添加一个post- commit文件;当有commit动作发生时(提交到SVN Server时)就会执行这个post-commit文件,在该文件实现数据的复制。 

      实例: 
环境:SVN Server与测试用的Web Server在同一台Windows系统服务器上,SVN Server使用的是VisualSVN,Web Server使用的是Apache。项目的名称为test,客户端使用TortoiseSVN。 
首先在apache的www目录下创建一个文件夹,进行checkout,输入需要用户名和密码,将test项目取出到该文件夹中。 
找到SVN Server的Repositories目录,在Repositories/test/hooks文件夹中创建post-commit.bat,在其中写入命令: 
"C:\Program Files\VisualSVN Server\bin\svn.exe" update "D:\www\test" --quiet --username name --password pwd 

(即执行svn update命令,请自行替换用户名和密码)

也可以这样写


@echo off
SET REPOS=%1
SET USER=%2
SET SVN="C:\Program Files (x86)\VisualSVN Server\bin\svn.exe"
SET DIR="C:\wamp\www\yddeshop" 
(call %SVN% update %DIR% --username "cuiyanan" --password "cuiyadl" --non-interactive)





大功告成。 
注:

1.web目录下一定要用TortoiseSVN checkout出Repositories的代码

2.

-username izaodao --password izaodao

izaodao替换为登录svn的用户名和密码

在使用中可能会遇到的错误排除 :


1.Error: svn: 解析“D:\www\test”出错,或svn: E020024: Error resolving case of 'D:\www\test"',则有可能是因为目标文件名之后多加了”\”


2.“D:\www\test"或Skipped 'd:\www\test',则可能是因为没有执行步骤提交更新处理文件 即上面提到的.bat文件,svn.exe不认识目标文件夹


3. Working copy 'D:\www\test' is too old,则可能需要使用sven.exe upgrade命令重新整理一下目标文件夹 或者重新安装一个较高客户端版本至少要2.6以上吧

4.还有一个注意问题——Visual SVN Server的权限,否则可能会出现下列错误:
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 服务 右键属性 登陆面板 设置桌面交互或者管理员权限再试
分享到:
评论

相关推荐

    linux 安装svn并实现本地同步服务器

    本文将指导读者在 Linux 环境下安装 SVN(Subversion),并使用钩子脚本实现本地提交后自动同步代码文件到服务器的网站目录下。 安装 SVN 首先,使用 yum 命令安装 SVN: `yum install subversion` 安装完成后,...

    Linux钩子配置(SVN)

    ### Linux钩子配置(SVN) #### 知识点概览 ...总之,通过合理配置SVN钩子,可以显著提升Web项目的开发效率和质量。特别是在Linux环境下,利用Shell脚本的强大功能,可以实现高度定制化的自动化流程。

    svn同步数据

    在以上配置完成后,每次在svn中提交代码时,通过`post-commit`钩子脚本,系统会自动更新Web服务器上的文件,实现了svn与Web服务的实时同步,这对于开发团队协作和部署是非常有用的。在实际操作中,应注意安全性和...

    svn和weblogic的自动同步

    实现SVN与WebLogic服务器之间的自动同步的核心思路是通过SVN的`post-commit`钩子脚本来触发后续的一系列自动化操作。当开发者完成对代码的修改并通过SVN提交后,`post-commit`脚本会被自动执行。该脚本可以配置为...

    windows环境下svn同步web文件.docx

    在描述中提到的"svn同步web文件"是指通过SVN的hook机制,实现在每次提交(commit)到SVN服务器后,自动将更新的数据发布到Web服务器上,简化项目开发和测试流程。 实现这一功能的关键在于使用SVN的hook脚本,特别是...

    svn服务端与客户端

    3. **Update(更新)**: 从 SVN 服务器获取最新的更改到本地工作副本,确保与团队同步。 4. **Merge(合并)**: 当两个或多个分支有冲突时,需要合并更改以保持一致性。 5. **Branch and Tag(分支与标签)**: ...

    Linux环境下配置同步更新的SVN服务器(word文档)

    2. **验证自动更新功能**:进行一些更改后提交到SVN仓库,查看是否能够自动更新到Web服务器上的相应目录。 #### 五、总结 通过以上步骤,我们成功地在Linux环境下配置了一个同步更新的SVN服务器。这样的配置不仅...

    Linux下SVN服务器自动更新文件到Web目录的方法

    本文将详细介绍如何在Linux环境下,特别是CentOS操作系统上,配置SVN服务器,使其在提交代码更新后能自动同步到Web服务器的根目录,从而实现实时更新Web站点的目的。 首先,确保已经安装了SVN服务器。在这个例子中...

    SVN架设 提交版本的同时更新网站的方法

    "SVN架设 提交版本的同时更新网站的方法"这个主题聚焦于如何配置SVN服务器,使得每次提交代码到仓库时,能够自动将更新同步到Web服务器的发布目录。这一功能对于实时部署和持续集成流程至关重要,尤其是对于那些需要...

    IIS+SVN实现本地上传服务器自动更新

    - 上述脚本会在每次提交后触发,自动将最新的代码更新到服务器上的工作副本中(`E:\web`)。 4. **初始化服务器上的工作副本**: - 使用之前创建的`admin`账户,在服务器的网站文件夹(`E:\web`)中初始化一个SVN的...

    SVN1.4 chm手册

    8. **SVN钩子脚本**:描述了如何设置和使用SVN服务器的预定义脚本(hooks),以实现自动化的操作,如提交前的检查、邮件通知等。 9. **Web界面与第三方工具**:除了命令行工具,还介绍了通过Web界面(如Trac)和...

    svn客户端与服务端

    在SVN系统中,分为客户端(Client)和服务器端(Server)两个主要部分,它们协同工作以实现代码的版本控制。 **1. SVN服务器端** SVN服务器端是整个版本控制系统的核心,它存储所有版本的文件和目录,并处理客户端...

    svnclient.rar

    SVN(Subversion)是一种广泛使用的版本控制系统,用于管理软件项目的源代码和其他文件。它允许团队成员协同工作,跟踪每个更改,并能轻松回滚到以前的版本。"svnclient.rar"是一个包含SVN客户端工具的压缩包,可能...

    SVN环境所需基本软件+文档说明

    - **检出(Checkout)**:从SVN仓库获取最新代码到本地工作副本。 - **提交(Commit)**:将本地修改的代码上传到SVN仓库。 - **更新(Update)**:同步本地工作副本与仓库的最新变化。 - **差异(Diff)**:...

    svn工具和使用方法文档

    - 使用钩子脚本(Hooks)实现自动化的操作,如提交前的检查、邮件通知等。 7. **故障排查** - 当遇到问题时,可以使用`svn log`、`svn diff`等命令查看日志和差异,帮助定位问题。 - 如果工作副本出现异常,可以...

    SVN.rar_svn

    3. 配置仓库:通过Web管理界面或者命令行工具如`svnadmin`,设置访问权限、钩子脚本等。 4. 配置网络访问:根据需求选择HTTP/HTTPS方式,通过IIS或Apache等服务器软件配置SVN模块。 三、客户端工具 1. 小乌龟...

    SVN汉化文件LanguagePack_1.6.7.18415-win32-zh_CN

    SVN的其他高级特性包括冲突解决机制、强大的分支和合并策略、以及通过钩子脚本实现的自定义操作。例如,可以设置预提交钩子来检查代码风格或者运行测试,确保提交的代码质量。另外,SVN还支持通过WebDAV协议进行访问...

    svn 服务器

    1. **版本控制**:SVN的核心功能是版本控制,它记录了文件和目录的所有更改,使得团队成员可以在同一份代码上协作而不会冲突。 2. **集中式模型**:与Git等分布式版本控制系统不同,SVN采用集中式模型,所有的版本...

Global site tag (gtag.js) - Google Analytics