1、svn报错 refers to a file, not a directory
svn co http://server.com/svn/trunk/test.file test.file
svn: URL 'http://server.com/svn/trunk/test.file test.file'
refers to a file, not a directory
问题根本原因:
svn co 即svn checkout 下拉一份代码副本到本地,但是checkout仅支持目录,如果checkout单个文件的话会报此错误。
解决方法:
A. 下拉代码副本的时候,将目录下载下来,此操作并不会覆盖掉target_directory/目录下的原有文件;
svn co .../directory/ target_directory/ --username XXX --password XXX
B. 强制出文件,此操作仅为单向下拉文件,不能上传到svn库,根据需求来决定使用哪种方式;
svn export --force .../directory/svn_filename target_directory --useranme XXX --password XXX
2、svn报错 commit fail: **File out of date
svn: Commit failed (details follow):
svn: Item '/banksystem/Mmoney/trunk/src/tpme/MEBS/timebargain/tradeweb/dao' is out of date
问题根本原因:
svn需要在其下拉的工作目录下操作才可以,一般脚本使用到svn时没有留意到当前脚本的执行环境是当前目录,还是svn对应的工作目录。
解决方法:
A. 比如判断文件存在就up更新,不存在时就co一份副本下来,up前一定要进入该目录,否则后面的up和ci提交都会出错;
if [ -e svn_filename ]; then
cd target_directory/
# 注意点,svn需要在其下拉的目录中操作才可以
svn up
else
svn co .../directory/ target_directory --username XXX --password XXX
fi