安装及使用VisualSVN-Server(SVN服务器工具)
SVN是一款集中式版本库控制工具
VisualSVN-Server及Cornerstone下载链接
VisualSVN-Server的安装及使用
-
在windows平台上安装VisualSVN-Server图解:
<pre>
由于软件不会自己创建快捷方式,为了简单操作,可以自己创建快捷方式:
</pre>
2 . VisualSVN-Server常见操作图解
<pre>
-
创建仓库图解
-
在仓库中创建新文件夹
-
创建新用户
-
添加分组
-
设置读写权限
</pre>
SVN初始化项目及常用操作
- 将服务器已有的内容下载到本地(提示:checkout(co)之后,命令行会记录用户名和密码,后续操作不用再另行指定)
checkout==co
<pre>
$ svn checkout https://172.16.83.128/svn/ingke/ --username=用户名 --password=密码
</pre>
错误提示:"is not a working copy",必须在svn的工作目录下才能正确使用svn的命令
如果出现https://
协议问题,在问题代码后直接键入p
按回车
- 初始化项目
- 进入工作目录 (含有
.svn
文件夹的目录)
- 初始化项目 (将工程拖到工作目录下)
- 将初始化的项目添加到本地代码仓库中
svn add 文件名 - 将文件提交到服务器(
commit==ci
)
svn commit -m "注释" - 参看本地代码库状态
svn status / svn st 显示的文件状态(`st==status`)
状态码 描述文字
空白
没有修改A
文件已被添加到本地仓库管理中,但是还未添加到服务器中(服务器的仓库还未管理该文件)C
冲突D
该文件已经在本地被删除,但还没有将删除操作共享给服务器I
被忽略M
文件已经被本地管理,并且服务器也有该文件,但是新修改的修改内容没有被提交到服务器R
被替换X
外部定义创建的版本目录?
svn不识别该文件,或者该文件被删除过,或者该文件是新添加的文件,还没有被本地代码仓库进行管理!
文件丢失或者不完整(不是通过svn命令删除的文件)~
受控文件被其他文件阻隔个人基本操作
- 修改文件之后,使用
svn commit -m "注释"
重新提交到服务器
删除文件(一定要使用svn操作指令删除文件)
svn remove 文件名
(remove==rm==delete==del
)撤销修改:
$ svn revert 文件名
多人开发
svn update
从服务器上下载更新最新的内容
- 错误提示
out of date
表示文件过期 (不能提交代码的情况:当本地的版本号小于服务器的版本号时,不能进行提交) - 错误提示
Conflict discovered in '冲突路径'
冲突解决选项:
1. 常用选项:
(p) postpone :生成文件,让使用者对比冲突,手动修改,(修改完成后,使用代码:`svn resolved 文件名` 删除生成的多余文件)
(mc) mine-conflict :使用我的代码覆盖服务器的代码
(tc) theirs-conflict :使用服务器的代码覆盖我的代码
2.不常用选像
(e) edit :在命令行中编辑文件
(df) diff-full : 在命令行中展示所有的不同
(s) show all options :重新展示所有选项
svn版本回退操作(借鉴crazy hacking的专栏)
查看之前更新过的版本
$ svn log
//查看svn日志
$ svn log filename
//查看某一个文件的日志
$ svn log filename@1
//查看某一个文件某一个版本的日志更新到之前某个版本
$ svn update -r 版本号
使服务器恢复到之前某个版本
1). 使用
svn update -r 版本号
回到之前版本,查看是否是我们需要的版本
2). 使用svn update
回到最新版本
3). 将最新版本合并到某一个版本svn merge -r 最新版本号:回退版本号 希望回退的文件名
4). 使用svn ci -m "注释"
重新提交改变服务器文件内容
注意:还可以使用svn merge --dry-run来模拟假装merge一下,看一下merge会发生什么,而不是真正的做这个动作。
(svn merge --dry-run -r:2011:2010 http://my.repository.com/my/project/trunk
svn merge -r:2011:2010 http://my.repository.com/my/project/trunk
svn commit -m "Reverted to revision 2010."
)
- 使用cornerstone实现版本回退
IOS开发中,SVN如何恢复到某一个版本(以Cornerstone为例)