作者:yanghuimin | 来源:互联网 | 2023-09-25 22:56
svnserve -d -r /data/svn2/(版本库保存地方),无端口启动方式
/usr/local/bin/svn co svn://192.168.1.104/cncar /home/web/cncar(working copy相应目录)
svn checkout path(path是服务器上的目录)
例如:svn checkout svn:
//
192.168
.
1.1
/
pro
/
domain
简写:svn co
/usr/local/bin/svn up svn://192.168.1.104/cncar --username=darren /home/web/cncar
(svn up表示从服务器上同步文件)
1更新: svn update
2清理:svn cleanup
3svn add (
svn添加文件,要先把要添加的文件放到working copy相应的目录下,执行add,再commit
,
checkout下来的文件夹放到你本地就叫做working copy,里都带着.svn文件夹,这个文件夹是你本地文件与svn服务器的连接文件
)
4.svn lock 加锁
svn unlock 解锁
5.svn commit -m (后面不要加文件),如果报错,svn commit -m --force-log 强制上传(
这个问题是因为在xcode使用svn上传项目的时候,如果在这个地方输入的名称与服务器上已经存在的名称冲突会报出这个错误,而且不能上传。要不然就是用 --force-log来强制上传
)
6.通过输入下面的命令可以查看各个版本的情况:
svn log path
(path是你想要查询的working copy的路径,如果你在这个路径下面输入的命令,可以省略path)
svn update -r m path
例如:
svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)
svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)
注意:
在另一个目录下重新checkout,将工作拷贝上的最新数据(或其他项目)备份起来,然后将备份的文件覆盖到刚checkout d的目录,备份的数据可以用
find -name ".svn" -exec rm -rf {} + 来批量删除.svn文件,然后checkout 到新的目录,千万不能将 .svn 隐藏文件夹checkout 到新目录
SVN 自动提交作业设置:
假设 /home/web/cncar 为项目目录,/data/svn2/cncar为版本库
cd /data/svn2/cncar/ hooks/
cp post-commit.tmpl post-commit
vi post-conmit
然后保存。
这个文件权限设置为 -rwxr-xr-x 即可。
最后测试...
现在客户端提交作业,就不用在SVN服务器上用svn update这么麻烦来更新版本了,在客户端上提交,则会自动更新到服务器。
完。
这里配置文件也说一下吧:
主配置文件 svnserve.conf
版本库名字:
帐号设置:
用户:
密码:
删除命令:
svn delete 0620nginx.conf.bak
svn ci -m 'delete test file'
svn delete --force file.txt 强制删除
完。