冲突的解决
查看冲突状态命令
svn status -u
那么:
svn status -u
U 开头的信息提示你,这个文件在你本地没有修改过,文件已经根据版本库的新版本更新了。
G 开头的信息提示你,这个文件在你本地已经修改过,但是和版本库中对应的版本并没有冲突的地方,svn已经合并更新了。
C 开头的信息提示你,提示冲突了
一旦冲突解决了,通过命令 svn resolved 通知,并删除冲突临时文件才可以提交
命令行操作
1. 建立版本库
svnadmin create f:/tmp/svnrepo
2. 中间可能有更多步骤,比如:修改属性文件、启动svnserve等操作
3. 导入工程到版本库中
svn import test file:///f:/tmp/svnrepo -m "project comment"
一定要注意,少一个冒号都不行
命令提示符下不能输入中文
1. 修改注册表 HKEY_CURRENT_USER/Console 中 loadConIme,从 0 改成 1 即可
2. 采用emacs中 "M-x eshell" 命令,在 eshell 中提交中文文档
目录结构
trunk: 项目开发的主线(可作为多个项目分支后的合并工作)
tags: 项目发布时的快照,仅仅是拷贝某个重要的版本(Release)
branch: 各个分支的工作目录,像项目有几个人就可以在branches中见几个目录,最后由管理员将分支项目修改的内容合并到trunk即可
需要用到的库,但是不会经常改动。可以在 trunk/src/ 目录下,新建一个 resources 目录,并且在里面添加用到的库,最好压缩一下,然后考虑用批处理,将依赖文件更新到项目主路径下即可。
只checkout单个目录
svn co --depth=empty svn://192.168.0.1/pcsoft/install/package/ package
其中 co 代表 checkout;注意在末尾加上创建的文件名称,如 package
注册服务
如下注意:该加空格地方一定要加空格。如果需要设置服务自动启动,则在命令行最后加上“start= auto”即可
1. 注册
sc create svnservice binpath= "\"d:\Program Files\Subversion\bin\svnserve.exe\" --service -r f:\MySvnRoot" displayname= "SVNService" depend= Tcpip
2. 删除
sc delete svnservice
3. 启动服务
net start svnservice
常见问题
1. 无法启动 svnservice 服务,错误1053:服务没有及时响应启动或控制请求。
可能是创建服务的参数写错了,删除后,修改参数重新创建服务试试
2. 服务已标记为删除
可能是当前服务管理窗口没有关闭的原因
命令行下指定特定用户
svn list svn://192.168.0.1/pcsoft/ --username=username --password=password
在命令行中仅查看修改或添加的,不查看未添加到库中的命令
svn st -q
其实遇到问题时,可以调出svn自带的帮助信息,也许就找到自己想要的答案了。如下:
svn help st
提交时文件夹被锁了
提示如下信息: svn: Working copy 'd:\WorkSpace\work\zigbee' locked
解决方法:
1. svn cleanup
2. 删除 .svn 目录下 所有 lock 文件
del lock /s /q
在将文件或文件夹添加到svn后,又改变主意不想提交
重新 revert 即可,注意如果是文件夹,需要添加 --depth infinity 参数
svn revert exercise/ajax/WebContent/extjs/ --depth infinity
svn从1.6升级到1.7
原来用 1.6 checkout 出来的版本,在安装了最新的 1.7 版本时,提示需要执行升级命令,其实就按照对应提示升级就行了
svn upgrade