# SVN常用功能介绍
> > 功能主要介绍:代码检出,增加,删除,解决冲突等常用操作
## 代码的检出
> 检出得到的文件夹中,是受SVN客户端控制的,对其进行文件或文件夹的增删改操作都会被SVN客户端识别出来,对其可以进行update、commit操作。其中含有.svn隐藏文件夹,这个隐藏文件夹中含有SVN客户端的控制信息。
导出得到的文件夹,是不含.svn隐藏文件夹的,因此不受SVN客户端控制,不能继续进行update、commit操作
你的工作目录中`右击`鼠标,选择`SVN检出`进行代码的检出:

SVN代码检出窗口介绍

下面是一个把名为`danmo.com`检出到本地`F`盘中:

* 右击检出填写检出地址和目录


* 检出成功

* 这是你会看到磁盘中会有一个含有绿色对号的文件夹这就是代码库

>在第一次使用的时候会提示您输入账号和密码,将您的账号密码输入即可,为了以后方便,您可以记住密码的方式登陆。忘记账号密码的可以找管理员进行重置即可。
## 增加代码
在进入到文件夹中创建一个名为`添加一个文档.txt`的文件,这时候 你会看见文件前面带有一个`蓝色的问号`,这表示这个文件没有版本控制,如果要加入版本控制库,进行如下操作:
* 右击文件

* 这时文件图标变成`蓝色+`,表示文件已经加入缓存中了,但是没有上传到服务器中,你需要进行提交才可以。

* 右击文件或者右击文件夹空白处点击`提交`


* 这时文件图片变成`绿色对号`,表示文件已经在代码版本控制库中

* 右击文件夹空白处点击`提交`也可以添加并提交,具体操作如下




> 以上两种两种方式都可以把代码或文件提交到版本控制库中,根据个人的喜好可以酌情使用,这里不做特殊规定。
在拉去或者提交的时候可能或遇到以下错误:禁止访问`/svn/danmo.com/trunk` 表示没有相应的权限,可以找管理员相应的操作。
## 删除
> 对比与添加删除就显得简单的多了你只要在本地删除文件然后提交到服务器即可,下面用实例说明:
本操作主要是对上面提交的`测试文件.txt`空文件的删除操作

本地没有了`测试文件.txt`这个文件,这只是删除了本地文件还未将服务器中的删除,你要继续做如下操作,右击文件夹空白处点击提交:


## 解决冲突
>>>`冲突原因` 假设A、B两个用户都在版本号为100的时候,更新了kingtuns.txt这个文件,A用户在修改完成之后提交kingtuns.txt到服务器,这个时候提交成功,这个时候kingtuns.txt文件的版本号已经变成101了。同时B用户在版本号为100的kingtuns.txt文件上作修改,修改完成之后提交到服务器时,由于不是在当前最新的101版本上作的修改,所以导致提交失败。
#### 解决冲突有三种选择:
A、放弃自己的更新,使用svn revert(回滚),然后提交。在这种方式下不需要使用svn resolved(解决)
B、放弃自己的更新,使用别人的更新。使用最新获取的版本覆盖目标文件,执行resolved filename并提交(选择文件—右键—解决)。
C、手动解决:冲突发生时,通过和其他用户沟通之后,手动更新目标文件。然后执行resolved filename来解除冲突,最后提交。
> 在实际的运用过程中会经常遇到冲突,这需要根据实际的情况进行解决冲突提交
