因为要给产品妹子测QT官网然后找师兄要了份完整代码和数据库然后准备po到阿里云上然而更改代码的时候还是用的xftp有点不爽于是开始研究怎么搭建SVN/
一开始就是找网上的好多教程来看然后遇到的问题一度让我想改成Git…
前大部分流程主要参考:
http://www.cnblogs.com/likwo/p/3152365.html
和其他一些零零散散的一些其他配置的东西
然后还遇到了神奇的不知道怎么发生的405报错
SVN提示:405 Method Not Allowed的原因和解决方法
用TortoiseSVN访问基于apache配置的svn版本库时,有时候会提示错误405 Method Not Allowed,开始用TSVN checkout了一个正常的目录,假设服务器地址为: http://svn/project1,之后,服务器经过其它配置,这个地址变了,使得用这个地址不再能访问到正确的版本库,此时,TSVN就极有可能报405错误。另外,当你访问的地址大小写与服务器的地址不一致时,也会出现该错误。只要将TSVN访问的地址改成正确的,或修改服务器配置,使原地址可以访问即可解决。
毕竟我svn的checkout地址也是乱填的//一开始搞不清状况
最后应该是要填版本库的地址QAQ而不是www//大概是吧?老是忘记密码我也是要狗带了呢
AND
至于同步更新钩子也是肥肠重要的东西呢
之前都不知道这个啊于是commit了代码网页也没有变化然后就找啊找的
给我找到这个
我们知道要把svn的内容更新到web目录需要手动的svn up
参考:
http://blog.163.com/arm_linux_learn/blog/static/19215530820122535110390/
三、同步更新 [勾子]
同步程序思路:用户提交程序到SVN,SVN触发hooks,按不同的hooks进行处理,这里用到的是post-commit,利用post-commit到代码检出到SVN服务器的本地硬盘目录,再通过rsync同步到远程的WEB服务器上。
知识点:
1、SVN的hooks
1 | # start-commit 提交前触发事务 |
通过上面这些名称编写的脚本就就可以实现多种功能了,相当强大。
2、同步命令rsync的具体参数使用
3、具有基个语言的编程能力bash python perl都可以实现1
2post-commit具体实现细节
post-commit脚本
编辑文件:sudo vim /home/svn/fitness/hooks/post-commit
注意:编辑完成post-commit后,执行:sudo chmod 755 post-commit
内容:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24#!/bin/sh
export LANG=zh_CN.UTF-8
sudo /usr/bin/svn update /var/www/www --username mirze --password 123456
或
#Set variable
SVN=/usr/bin/svn
WEB=/home/test_nokia/
RSYNC=/usr/bin/rsync
LOG=/tmp/rsync_test_nokia.log
WEBIP="192.168.0.23"
export LANG=en_US.UTF-8
#update the code from the SVN
$SVN update $WEB --username user --password password
#If the previous command completed successfully, to continue the following
if [ $? == 0 ]
then
echo "" >> $LOG
echo `date` >> $LOG
echo "##############################" >> $LOG
chown -R nobody:nobody /home/test_nokia/
\#Synchronization code from the SVN server to the WEB server, notes:by the key
$RSYNC -vaztpH --timeout=90 --exclude-from=/home/svn/exclude.list $WEB root@$WEBIP:/www/ >> $LOG
fi
其实大概就是神奇的hooks一直没有弄好以至于没有触动同步更新的鬼东西然而对svn来说这种东西真的很重要嗷QAQ网上好多教程感觉都没有讲到这个(:з」∠)\可能我比较蠢
然后还Get到find命令好神奇(:з」∠)1
2
3find -name "svn"
./home/svn
./usr/bin/svn
然后对于网站代码(web目录)和SVN项目(库)的区别(:з」∠)
网站代码其实还是放在www下面然后SVN下面搭一个PROJECT链到www里面然后www里面代码发生文件上的更改(比如改名字增删文件等都会引起project的那啥啥然后钩子的用处就是帮你svn up啦啦啦所以其实有时间还是要去了解他本身的一些东西看下手册什么的
https://subversion.apache.org/faq.zh.html#website-auto-update
然后大概就是这样?顺便去撸撸Linux家命令之类的
然后关于我破破的phpstorm和阉割版的xampp一开始跑不了ut然后自己去下xdebug也怪怪的报错的样子然后在stackoverflow上面看到说是版本不对(主要是教你怎么看?)
然后我跑去看原来我Apache还真的是32位…)
//前面有人说xdebug有个wizard但是对我并没有什么卵用
于是我就去装了32位的就可以了(:з」∠)
虽然跑ut中文还是乱码…鑫哥说我应该是一开始就不对…然而我还是就这样用吧(:з」∠)\…毕竟懒
OK, it is working now and I think I know what was wrong.
I was using the 64 bit version of PHP but the 32 bit version of Apache and the 64 bit version of xdebug.
I started over and used Apache 2.4 32 bit, since there doesn’t seem to be a 64 bit version with the php5 module.
So, I made sure I have the 32 bit version of everything. I am using php5.4 with VC9, Thread Safe.
This blog post helped in setting it up:
http://lifeofageekadmin.com/how-install-apache-2-4-php-5-4-and-mysql-5-5-21-on-windows-7/
http://stackoverflow.com/questions/10019966/xdebug-not-loading-on-windows-7-64-bit-php-5-4
顺便解决了phpstorm快捷键冲突的问题
原来是我直接down佐vim的插件然后我把他的钩取消就好了
毕竟ctrl+c冲突是比较烦的事情恩233333
然后觉得真好用
跳转什么的快要替代我心目中npp的位置了但是我觉得自己平时撸一些小东西应该还是Npp的(:з」∠)\不自信脸…
然后接口啊接口啊(:з」∠)
顺便做错事直接推到用户去了然后被发现了然后就(:з」∠)\还是好好干吧大概不能blx啊QAQ嘤嘤嘤然后其实代码思路很混乱啊也不知道自己在想什么啊就这样
!!最后QAQ下午一直po不上这篇东西啊我不知道是不是自己超字数啦啦啦啦QAQ心痛再试一次QAQ毕竟流水账的我真的不可能这样子啊嗷QAQ
大概是遇到一些我copy过来的代码会转义吧(:з」∠)好困