# killall svnserve
#svnserve -d -r /yourpath
注意在svn用户分组的那行不要加注释
# killall svnserve
#svnserve -d -r /yourpath
注意在svn用户分组的那行不要加注释
打开版本库根目录
增加tmp用来保存更新记录
进入hooks目录
复制post-commit.tmpl 文件,新文件名称为post-commit 不需要后缀。
打开文件,注释文件内所有内容,增加以下内容
export LANG=zh_CN.UTF-8
REPOS=”$1″
REV=”$2″
SVN_PATH=svn://172.246.164.41/yiicms
WEB_PATH=/www/web/yiicms/public_html
LOG_PATH=/www/svn/storage/tmp/svn_update.log
echo “\n\n\n########## start commit ” ` date “+%Y-%m-%d %H:%M:%S”` ‘##################’ >> $LOG_PATH
echo `whoami`,$REPOS,$REV >> $LOG_PATH
svn update /www/web/yiicms/public_html/
$SVN_PATH update –username dreamzml –password 421126 $WEB_PATH –no-auth-cache >> $LOG_PATH
chown -R www:www $WEB_PATH
#mailer.py commit “$REPOS” “$REV” /path/to/mailer.conf
来源:http://blog.csdn.net/dreamzml/article/details/12856965
有时候你发现svn add后,这个提交的数据又不需要了。这时候需要有svn revert来处理了。
比如
A testcase/perday.php
如何取消呢?
svn revert testcase/perday.php
会出现下面的提示:
已恢复“testcase/perday.php”
说明脚本已经恢复了到原来的状态,不受SVN 版本控制了。
如何恢复整个目录??有时候你将整个目录都svn add了,整个目录有不同深度的文件夹,这时候你需要用其他方式来解决
svn revert –depth=infinity .
注意:上面一条语句后面的.绝对不能少,否则你不会操作成功。这条语句也要在svn 目录的外层执行。不能跑到svn add后的目录里面去执行。
执行完以后出现“Reverted ‘library/Cmsbase/phpmailer’”
表示将phpmailer目录整个恢复到svn版本控制前了
在使用phpstrom 或者 Intellij IDEA的时候提示Can’t use Subversion command line client:svn让修复。
这个只需要安装Slik svn(下载网址:http://www.sliksvn.com/en/download)。
按照你的svn帮下载并按照
We provide a standalone command-line Subversion client for Windows. The installer contains all command line tools (svn, svnadmin, svnsync, svnserve, svnmucc) but no application bindings nor Apache modules. The tools are fully side-by-side compatible with other packages. Ideal for build systems, deploy scripts, et cetera.
我们为Windows提供了一个独立的命令行Subversion客户端。安装程序包含所有命令行工具(svn,svnadmin,svnsync,svnserve,svnmucc),但没有应用程序绑定或Apache模块。这些工具与其他包装完全并排兼容。理想的构建系统,部署脚本等。
注意事项:1.用命令提示符(管理员)
2.用命令工具
1、将文件checkout到本地目录
svn checkout path(path是服务器上的目录)
例如:svn checkout svn://192.168.1.1/pro/domain
简写:svn co
2、往版本库中添加新的文件
svn add file
例如:svn add test.php(添加test.php)
svn add *.PHP(添加当前目录下所有的php文件)
3、将改动的文件提交到版本库
svn commit -m “LogMessage” [-N] [–no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)
例如:svn commit -m “add test file for my test” test.php
简写:svn ci
4、加锁/解锁
svn lock -m “LockMessage” [–force] PATH
例如:svn lock -m “lock test file” test.php
svn unlock PATH
5、更新到某个版本
svn update -r m path
例如:
svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)
svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)
简写:svn up
6、查看文件或者目录状态
1)svn status path(目录下的文件和子目录的状态,正常状态不显示)
【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】
2)svn status -v path(显示文件和子目录状态)
第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
简写:svn st
7、删除文件
svn delete path -m “delete test fle”
例如:svn delete svn://192.168.1.1/pro/domain/test.php -m “delete test file”
或者直接svn delete test.php 然后再svn ci -m ‘delete test file‘,推荐使用这种
简写:svn (del, remove, rm)
8、查看日志
svn log path
例如:svn log test.php 显示这个文件的所有修改记录,及其版本号的变化
9、查看文件详细信息
svn info path
例如:svn info test.php
10、比较差异
svn diff path(将修改的文件与基础版本比较)
例如:svn diff test.php
svn diff -r m:n path(对版本m和版本n比较差异)
例如:svn diff -r 200:201 test.php
简写:svn di
11、将两个版本之间的差异合并到当前文件
svn merge -r m:n path
例如:svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)
12、SVN 帮助
svn help
svn help ci