Chinaunix首页 | 论坛 | 博客
  • 博客访问: 120065
  • 博文数量: 87
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 0
  • 用 户 组: 普通用户
  • 注册时间: 2017-12-21 12:14
文章分类

全部博文(87)

文章存档

2015年(10)

2014年(2)

2013年(6)

2012年(69)

我的朋友

分类: WINDOWS

2012-11-14 11:08:50

最近几天一直在看svncommit时可以自动更新到测试环境上

开始的时候在百度上找了一个实现步骤 可是一直出错
windows下写了post-commit.bat脚本实现测试环境的同步 ,为什么一直报错 ?

"F:\install ZSX\svnserver\bin\svn.exe" update "E:\webtest" --username zhang --password zhang
脚本是这样的 有错误吗?

版本库是直接在服务器上创建的,web目录是直接客户端检出的,然后又用服务器updata,询问高手说这样是不对滴....有点不明白啦

 "E:\webtest" 本地拷贝是用TSVN客户端CHECK OUT出来的,然后又用 服务端的命令"F:\install ZSX\svnserver\bin\svn.exe"去 update ,当然就有问题啊  把客户端和服务器混乱了


然后 然后 我就开始需求doc命令下的检出

cmd
svn checkout E:\test
在e盘创建了版本目录

在检出创建本地目录work

新建文件提交
出现错误

网上有这方面的文章, 也读了不少,但都一个模子,看起来没什么,真正用的时候出问题了,这里记录一下我的解决方法!

在测试时,一直提示如下错误:

2011/7/16 - 18:34:19
Command          : Commit
Deleting             : C:\Users\Administrator\Desktop\pc\index - 副本.html
Completed         : At revision: 28
Error                : post-commit hook failed (exit code 1) with output:
Error                : Error validating server certificate for  '':
Error                :  - The certificate is not issued by a trusted authority. Use the
Error                :    fingerprint to validate the certificate manually!
Error                :  - The certificate hostname does not match.
Error                : Certificate information:
Error                :  - Hostname: PC
Error                :  - Valid: from Fri, 15 Jul 2011 22:42:26 GMT until Mon, 12 Jul 2021 22:42:26 GMT
Error                :  - Issuer: PC
Error                :  - Fingerprint:  be:30:6f:7a:91:be:01:e8:4e:06:31:91:49:21:b3:ba:ed:2c:df:32
Error                : (R)eject, accept (t)emporarily or accept (p)ermanently? svn:  OPTIONS of 

'': Server certificate verification  failed: certificate issued for a different hostname, issuer

is not trusted

在网上查了很多的信息,都说是权限问 题,还有说要设置一个 (ssl-ignore-unknown-ca = truessl-ignore-invalid-date = true 来让svn自动忽略证书错误)  什么的害得我查各种方法解决问题足足用费掉我 八 九 个小时的时间! 学习个知识真不容易啊! 会的话几分钟就搞定,不会就这样,但下次也是几分钟的事.


基本配置方法:

条件:

1. web 服务器安装 VisualSVN 和 TortoiseSVN

2. 客户机安装 TortoiseSVN

3. 同时在客户机和服务器创建  web 目录 , 这两个目录都是连接 VisualSVN 的

4. 同时checkout 下文件 , 使这两个目录保持版本一致,最好不要直接编辑 服务器上的 web 目录文件 防止同步错误

5. 在 C:\visualSVN\Repositories\web\hooks (根据自己的安装查找) 下建立一个 post-commit.bat 的文件内容如下:

@echo off

"C:\visualSVN\VisualSVN Server\bin\svn.exe" update "D:\webHost" --username svn --password 000000

解析:

"svn的程序" update "服务器web 目录" --username 用户名 --password 密码


这里hooks 下有 post-commit 模板文件,不过是 linux 下用的例子

post-commit.bat 的作用就是在你用 Tortoise 进行 commit 成功后,执行一个批处理,就是 post-commit.bat 的文件。 


我这里只说一下关键点吧:知道这些关键点就不会出现上述问题了:

1. visualSVN 必须设置成 不用 https 来访问的 方式连接

2. 如果你现在遇到上面错误时已经使用了这种https方法,那么就重新设置一下,设置为没有https的方法进行访问! 并重启 visualSVN ,然后将你的已经 checkout 的文件夹删除,重新以新的连接方式 checkout  下来 ,然后再试  因为你以前 checkout 用的是 443 的方法, 再执行 post-commit.bat 时总是调用  443 这个连接, 所以要删除并checkout 一下.

七八个小时也就这两点信息 !   终于可以吃晚饭了


上面的一段是网上copy的

然后就开始学习设置svn的访问方式,在网上查了很久
这个貌似是不行的命令行:
svn switch --relocate
是失败的提示:svn:'.' is not working copy

最后向高手请教才知道是如此的简单 呜呜哇哇....
直接在可视化的svnsever里面设置就可以了 :操作-Properties-network里面设置就可以啦  ....泪流满面

哈哈 然后就成功了,模拟的测试环境是可以的  哈哈 不枉我坑坑巴巴的两条呀

阅读(2745) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~