客户端使用说明

 

1)添加SVN目录

新建文件夹,右键点击

 

android svn上传项目 svn客户端上传文件_svn


点击SVN Checkout,复制svn服务路径(https://CY-20180605XUVO/svn/test1/)

 

android svn上传项目 svn客户端上传文件_svn_02


输入用户名及密码,更新文件仓库。

 

android svn上传项目 svn客户端上传文件_服务器_03


2)首次上传及提交文件

首先右键选择TortoiseSVN,点击Add,将文件加入上传目录(首次上传需要加入提交目录,如果已加入目录直接SVN Commit即可),如下图:

 

android svn上传项目 svn客户端上传文件_svn_04


点击文件右键,点击SVN Commit,进行提交

 

android svn上传项目 svn客户端上传文件_服务器_05


确认提交的文件目录,以及输入此次提交说明。

 

android svn上传项目 svn客户端上传文件_android svn上传项目_06


提交后,返回提交信息列表,如下图:

 

android svn上传项目 svn客户端上传文件_右键_07


3)更新文件

将最新文件更新至本地,点击右键,点击SVN Update获取最新文件,如下图:

 

android svn上传项目 svn客户端上传文件_右键_08


4)查看日志信息

右键点击文件,选择show log选项,如下图:

 

android svn上传项目 svn客户端上传文件_svn_09


日志信息包含版本号,提交动作(新增,修改等),操作人,提交时间,提交信息等,在弹出界面也可以日期范围的简单筛选,如下图: 

 

android svn上传项目 svn客户端上传文件_服务器_10


5)文件比较-与前一版本比较

与前一版本进行比较,如下图选择”diff with previous version”

 

android svn上传项目 svn客户端上传文件_android svn上传项目_11


比较详细信息查看,如下图:

 

android svn上传项目 svn客户端上传文件_android svn上传项目_12


6)文件比较-与历史版本比较

首先查询文件日志show log(可查看“4)查看日志信息”说明),可选择不同历史版本进行比较,如下图:

 

android svn上传项目 svn客户端上传文件_右键_13


7)本地文件还原服务器版本

如果本地已经对文件进行修改,但是想要还原到服务器上的版本,可进行如下操作:

说明:文件的红色感叹号代表,本地文件与服务器文件不一致;

 

android svn上传项目 svn客户端上传文件_android svn上传项目_14


点击“Revert”,可将本地文件还原为服务器上最新版本。

8)忽略提交文件

如果需要每次提交整个文件夹内多个变动的文件,但是其中一个或多个文件又不想提交到服务端,可进行下面操作。 对文件夹进行提交操作,将新建的excel加入忽略列表,如下图:

 

 

android svn上传项目 svn客户端上传文件_android svn上传项目_15

 

android svn上传项目 svn客户端上传文件_右键_16

忽略提交文件列表已经生成,之后每次提交文件夹内变动文件时,此文件将不被提交,如果想要提交忽略文件,可进行打钩选择进行提交。
9)处理文件锁定

 

        下面例子来自于网上文章,但是没有找到原文出处,如侵权则删除下面说明

        SVN本地更新时,由于一些操作中断,如磁盘空间不够,用户取消等,可能会造成本地文件被锁定的情况。这时候无论你在执行SVN的更新、提交等子命令都会提示“**locked”的错误。

 

android svn上传项目 svn客户端上传文件_android svn上传项目_17


一般出现这种情况的解决方法:

1.可以使用SVN clean up来清除锁定。

2.如果不是本目录锁定,系统提示上一层目录锁定,需要到上一层或者根目录中清除。

 

android svn上传项目 svn客户端上传文件_右键_18


3.如果在根目录下都无法clean的话,sqlite工具进行清除数据。

先设置隐藏文件、文件夹为可见

 

android svn上传项目 svn客户端上传文件_服务器_19


按下图的操作,即可设置隐藏文件、文件夹为可见

     

android svn上传项目 svn客户端上传文件_右键_20

android svn上传项目 svn客户端上传文件_android svn上传项目_21


回到刚才的目录,是否发现多了一个文件夹,就是那个目录,是svn的隐藏目录,里面有它的配置文件

 

android svn上传项目 svn客户端上传文件_android svn上传项目_22


找到一个wc.db的数据库文件,这个是一个sqlite的数据库文件,没有密码,可以直接打开,可以使用sqlite查阅器打开

 

android svn上传项目 svn客户端上传文件_右键_23


这里介绍用aSQLiteSpy来打开,这个软件非常好用,想要初步了解的可以查看我的另一篇经验文章:如何打开sqlite的数据库文件

 

android svn上传项目 svn客户端上传文件_服务器_24


如果svn被锁住,直接删除这个表的数据就可以了

delete from work_queue;

 

android svn上传项目 svn客户端上传文件_android svn上传项目_25


10)解决文件内容冲突

举例说明:(参考)

假设A、B两个用户,他们分别从svn服务器中检出了test1.txt文件,此时A、B、服务器三个地方的test1.txt的版本都是13。A、B文件的内容如下图(左A右B):

 

android svn上传项目 svn客户端上传文件_右键_26


接下来,B用户添加一句话并提交,内容如下:

 

android svn上传项目 svn客户端上传文件_svn_27


此时B用户和服务器的test1.txt的版本都变为14,只有A用户的test1.txt的版本还为13。接下来A用户添加一句“aa”,然后提交

 

android svn上传项目 svn客户端上传文件_android svn上传项目_28


由于A用户是在13版本上做的修改,而服务器已经是14版本了,所以会提交失败:

 

android svn上传项目 svn客户端上传文件_右键_29


接下来就是我们要解决的问题了,解决方法分为以下两种方式。

第一种方式:

A放弃自己修改的内容,进行Revert操作,解决冲突后,但是A需要重新修改,重新提交。

第二种方式:

因为版本过时,提交失败后。A用户直接选择更新操作,结果如下图所见

 

android svn上传项目 svn客户端上传文件_svn_30


这里详细说一下产生冲突后的这几个文件,:

test1.txt.mine---这个文件是A用户在13版本中做了修改要提交的文件。它的内容是:13版本内容+A用户的修改

test1.txt.r13----这个文件是A用户最初的13版本的test1.txt。

test1.txt.r14----这个文件时svn服务器中test1.txt的最新版本,这里既是B用户提交后的14版本。它的内容是:13版本内容+B用户的修改

test1.txt--------由于A用户选择了直接更新,此文件就是svn将 最新版本14 与 A用户的修改 合并后的文件。它的内容如下:

 

android svn上传项目 svn客户端上传文件_右键_31


接下来说一下如何解决。对于源代码文件或其他的纯文本文件,我们可以将上图的A用户test1.txt的内容整理下,使其满足条件,然后选择,

 

android svn上传项目 svn客户端上传文件_android svn上传项目_32


这时test.txt.mine、test1.txt.r13、test1.text.r14将会消失。用户A就可以顺利提交了。

但是,如果test1.txt是一个非纯文本文件,比如excel,这时的test1.txt将没法手动合并了,不得不放弃自己的修改。可以在test1.txt上右键选择“Resolve”操作消除掉test.txt.mine、test1.txt.r13、test1.text.r14这三个文件。(点击Resolve不会更改test1.txt以及服务器端的内容,仅仅是消除了那几个文件。)此时的test1.txt文件是可以提交的,它对应的是服务器的最新版本,即14版本(因为这是svn将服务器最新版本14和A用户修改内容合并后的结果)。但这是svn帮我们合并的,是不合法的文件。我们可以右键然后选择“Revert”,然后test1.txt就会变成14版本,A用户的修改没有了,A、B、服务器的test1.txt都成为了14版本。接下来A用户就可以再进行修改提交了。

11)删除文件

右键文件,进行删除操作,如下图:

 

android svn上传项目 svn客户端上传文件_svn_33


删除后,进行提交操作。

如果想要恢复删除文件,可通过查询日志(参考“查看日志信息”)进行恢复,如下图:

 

android svn上传项目 svn客户端上传文件_右键_34