svn更新本地代码不实时

svn+rsync实时发布程序_服务器应用_Linux公社-Linux系统门户网站
你好,游客
svn+rsync实时发布程序
来源:Linux社区&
作者:sndapk
思路:svn服务器钩子触发rsync同步脚本,同步web服务器上的rsync定义的模块。
==========================WEB服务器(RSYNC)======================== 第一步:安装rsyncyum -y install rsync第二步:配置 #默认无该文件 #vim /etc/rsyncd.conf uid=root gid=root use chroot=no max connections=200 timeout=600 pid file=/var/run/rsyncd.pid lock file=/var/run/rsync.lock log file=/var/log/rsyncd.log [a.test.cn] path=/data/web/a.test.cn/ #exclude=conf/*.php comment = this ia a.test.cn ignore errors read only=falselist=falsehosts allow=172.31.0.12 hosts deny=* auth users=testsecrets file=/shell/rsync-passwd/rsync.passwd注:use chroot=no 时,同步后DES的文件主或组如果有,则显示名,即使ID不一样; use chroot=yes时,如果两台机器同名的ID不同,则服务端只会显示SRC的ID,造成权限问题。 编辑rsync的用户认证配置文件 # cat /shell/rsync-passwd/rsync.passwd test:test123 #chmod 600 /shell/rsync-passwd/rsync.passwd 第三步:启动rsync服务 /usr/bin/rsync --daemon echo "/usr/bin/rsync --daemon" &&/etc/rc.local第四步:客户端测试(172.31.0.12上) # cat /shell/rsync-passwd/rsync.passwd test:test123 #chmod 600 /shell/rsync-passwd/rsync.passwd rsync -vzrtopgl --progress --delete --exclude=.svn /data/web/a.test.cn/ test@172.31.0.15::a.test.cn --password-file=/shell/rsync-passwd/rsync.passwd或 RSYNC_PASSWORD=test123 rsync -vzrtopgl --progress --delete --exclude=.svn /data/web/a.test.cn/ test@172.31.0.15::a.test.cn (完成) 注:修改配置文件和用户密码不需要重启服务
===========================SVN服务器============================== 第一步:安装subversion tar zxvf subversion-1.7.4.tar.gz cd subversion-1.7.4 #下载apr,并执行buildconf生成需要的文件 svn co http://svn.apache.org/repos/asf/apr/apr/branches/1.3.x apr ./apr/buildconf#下载apr-util,并执行buildconf生成需要的文件 svn co http://svn.apache.org/repos/asf/apr/apr-util/branches/1.3.x apr-util ./apr-util/buildconf#下载sqlite3.c,解压后放到subversion解压的源码目录中,只确保有sqlite3.c即可。 # ll sqlite-amalgamation/ total 5004 -rw-r--r-- 1 root root 5121966 Dec 17 11:34 sqlite3.c ./configure --prefix=/usr/local/svnmake && make install第二步:创建svn库、配置好权限 1、创建库 mkdir /data/svndata/usr/local/svn/bin/svnadmin create /data/svndata/a.test.cn /usr/local/svn/bin/svnadmin create /data/svndata/b.test.cn /usr/local/svn/bin/svnadmin create /data/svndata/c.test.cn 2、配置密码和权限文件 mkdir /data/svnpasswd#cat /data/svnpasswd/passwd [users] aaa=aaapwd bbb=bbbpwd ccc=cccpwd xxx=xxxpwd yyy=yyypwd zzz=zzzpwd #cat /data/svnpasswd/authz [groups] a.test.cn = aaa b.test.cn = bbb c.test.cn = ccc other = xxx,yyy,zzz [a.test.cn:/] @a.test.cn=r w xxx=r *= [b.test.cn:/] @b.test.cn=rw yyy=r *= [c.test.cn:/] @c.test.cn=rw @other=r *= 3、配置所有svn库使用上面的用户和权限来集中管理权限。 修改所有库中的conf/svnserve.conf为以下内容 [general] anon-access = none auth-access = write password-db = /data/svnpasswd/passwdauthz-db = /data/svnpasswd/authz# realm = My First Repository # force-username-case = none [sasl] # use-sasl = true # min-encryption = 0 # max-encryption = 256 4、启动服务 /usr/local/svn/bin/svnserve -d --listen-port 4399 -r /data/svndataecho "/usr/local/svn/bin/svnserve -d --listen-port 4399 -r /data/svndata" &&/etc/rc.local5、配置钩子文件(第个库根据需要单独的配置)原理:每次commit,触发post-commit脚本。确保有执行权限。 拷贝模板文件为post-commit chmod 700 post-commit [root@-6 ~]# cat /data/svndata/ a.test.cn/hooks/post-commit #!/bin/sh #下面这个变量实际上是svn库的绝对路径,未使用。 #REPOS="$1" #下面这个变量实际上是每次commit后的版本,未使用。 #REV="$2" export LANG=en_US.UTF-8 /usr/local/svn/bin/svn update --username aaa --password "aaapwd" /data/web/a.test.cn if [ $? -eq 0 ] then&chown -R root.dev /data/web/atest.cn &/bin/bash /shell/rsync-script/a.test.cn.sh & /dev/null 2&&1 fi6、配置钩子文件触发的脚本 [root@centos-6 ~]# cat /shell/rsync-script/a.test.cn.sh #/bin/bash IP="172.31.0.15"Auth_module="a.test.cn"Localdir="/data/web/a.test.cn/"Auth_user="test"Passwd_file="/shell/rsync-passwd/rsync.passwd"Exc=" --exclude=.svn"rsync -vzrtopgl --progress --delete ${Exc} ${Localdir} $Auth_user@${IP}::${Auth_module} --password-file=${Passwd_file} 访问rsync密码文件,权限必须为600,root.root [root@centos-6 ~]# cat /shell/rsync-passwd/rsync.passwd test123 7、测试 客户端在a.test.cn库中提交文件,查看是否实时同步到rsync服务器定义的web目录中。 (完成) 注:添加库、修改权限、密码等不需要重启服务。
Rsync 的详细介绍:Rsync 的下载地址:
推荐阅读:
利用inotifywait监控主机文件和目录
利用inotify+rsync实现Linux文件批量更新
inotify-tools+rsync实时同步文件安装和配置
rsync同步完整配置
相关资讯 & & &
& (02月23日)
& (12/06/:38)
& (10/22/:54)
& (02月07日)
& (11/16/:28)
& (10/16/:06)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款SVN不能提交,但是可以更新
[问题点数:40分]
本版专家分:0
CSDN今日推荐
本版专家分:25
本版专家分:1163
本版专家分:0
本版专家分:782
匿名用户不能发表回复!|
其他相关推荐11:15 提问
SVN代码update显示成功,然而实际的本地代码却并没有更新,这是为何
我之前在进行项目时,上传到服务器第一个版本64,然后团队的队友checkout这个版本在此基础上进行修改。而后又上传了最新的代码65版本,并且需要其他队友更新这个版本并上传他们修改后的版本,问题是,当我成功上传了65版本后,队友们在update第65版本时,SVN提示更新成功,但是他们自己的代码实际上并未更新,已经检查过路径设置了,希望熟悉SVN的朋友解答一下
按赞数排序
应该是你的客户端有bug,具体要看你用的是什么客户端,google下看看有没有解决方案。
文件上右键, 属性里面的svn中show log看一下65到底是否有签入
凡是出现此类问题, 应该直接用 tortoisesvn 而不是在VS或者Eclipse 中用插件来做这件事情
打开项目之后,打开Solution Explore里面的Show All Files,然后逐个看下面的项目文件夹里面虚线框起来的的文件夹就是还未签入的,选中右击 Include
In Project ,重新编译下就Ok了,这样 就可以真正把Update的东西加载到项目中了
楼主 是怎么解决的啊? 我也遇到这个问题了!
xcode升级后svn也被升级了,出现同样问题,同求!
这里一个正确答案都没有,请问楼主最后怎么解决的,因为我也遇到这问题了
先看本地有没有加载上,如果本地有这个java文件,可能是编译没通过,可以重新编译,要不就重启eclipse,如果本地没有,那么就是svn的错误,看svn中有没有相应的java文件,如果有,将本地代码保存,重新检出,
我也碰到这个问题,最后被迫的解决方法:把那个文件删除,然后更新,就是最新的了
手动checkout出需要的文件,然后在eclipse上update项目。
平常碰到这种问题先把本地的文件备份下,然后从项目中删除. 再到本地磁盘上(需要检出的文件)那里用乌龟的repo-browser.到仓库里把你想要的文件checkout出来.再到idea里clean--&build..
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐SVN在服务器端自动更新問題
按时间排序
一般来说,服务器端的SVN客户端自动更新都是通过post-commit这个钩子实现的,这个钩子存放在SVN服务器对应的版本库存储路径(不是指checkout出来的文件夹,指的是服务器端的存储文件夹)下的hooks文件夹内。 post-commit这个钩子是当每次成功commit时,SVN服务器自动调用执行的,通过这个钩子就可以 实现commit时实时更新服务器上的客户端。 另外,如果不采用实时自动更新,而是定时更新,那一般是通过操作系统的定时任务来实现的,你就去看有没有什么定时任务了。 最后,还有一些是通过一些其它软件来调度的,那就不好列举了。
查看是否可以从yum软件仓库找到SVN安装包yum list *svn*2从使用yum软件仓库安装SVN,执行yum install subversion.i686中间会列出要关联的包,并提示下载:输入“y”并确认3SVN已经安装成功END创建版本库查看SVN 命令svn -help创建版本库目录mkdir -p /home/svn/svnfile创建版本库svnadmin create /home/svn/svnfile生成以下目录进入conf目录(这是该SVN版本库的配置目录)查看配置文件ls -l设置密码vim passwd按ESC键,切换到命令行,输入:wq!保存并退出设置权限vim authz在末尾添加[/]ver=rw版本库的根目录ver对其具有读写权限(r为读权限w为写权限)修改svnserver.conf设置anon-access=none #匿名用户不可访问auth-access=write
#认证用户可以执行写操作password-db=passwd
#密码文件authz-db=authz
#认证文件END开启SVN1启动SVNsvnserve -d -r /home/svn/我的服务器用的是小鸟云的,性能稳定,访问流畅。
你确定不是权限的问题?
感谢您为社区的和谐贡献力量请选择举报类型
经过核实后将会做出处理感谢您为社区和谐做出贡献
确定要取消此次报名,退出该活动?
请输入私信内容:年轻人要自律!!!
解决svn一直提示无更新
本地新增了很多文件,但是svn一直提示不需要提交。
清理也失败,而且还是乱码,先进行下面的清理即可。
原因就是之前提交时,出现了一些问题导致的。
SVN提示update更新成功,但是本地文件却没有更新
svn更新不了
SVN更新失败解决办法
关于使用svn checkout时点击无反应的情况
SVN一直提示输入用户名和密码
最近在使用SVN时,同步项目的时候,一直pending,无法加载的问题
关于项目中SVN不能更新和提交的问题
关于SVN更新慢的解决方法
SVN commit,update用法[转]
SVN更新文件时无法更新的问题
没有更多推荐了,}

我要回帖

更多关于 svn更新报错 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信