当前位置:   article > 正文

SVN使用详解(三)—— 客户端TortoiseSVN的常用操作及常见问题解决

tortoisesvn

5.svn常用操作

5.1 图形界面使用svn

5.1.1 导入项目(SVN Import)

(1)将项目导入到版本库,找到项目的文件夹,右击,找到SVN菜单,选择导入。

(2)从VisualSVN Server Manager中获取版本库的URL右击版本库选择 Copy URL to Clipboard

(3)将获取到的URL复制到 URL of repository,在导入信息里面填上“导入项目版本库”,点击OK。

  

(4)输入用户名和密码。

(5)导入完成,点击OK。

5.1.2迁出配置库内容(SVN Checkout

(1)新建一个文件夹,右击选择SVN Checkout。

(2)输入URL(和上面的获取方式一样的),选择检出目录地址,点击OK。

(3)检出完毕,点击OK。

(4)检出完成后,打开检出目录查看文件夹,每个小的文件夹都有一个绿色的。如图所示

5.1.3增加文件(Add)

(1)将需要增加的新文件放入到本地迁出的文件夹目录的相应位置中,鼠标选中新文件右键选择“Tortoise SVN”的“Add”项,如下图所示:

 (2)鼠标选中项目文件夹右键选择“SVN Commit…”,将新文件上传配置库对应文件夹中(若只上传单个文件,只需点中单个文件上传也可)。

5.1.4更新文件(SVN Update

(1)当从配置库迁出相应目录后,他人对服务器上此目录内容进行了修改,则需要再次获取改动内容到本地目录的过程称为更新。更新可以针对一个文件、几个选中的文件或者整个文件目录。选中要被更新的文件,右键选择“SVN Update”项,如下:

https://images2015.cnblogs.com/blog/946221/201605/946221-20160504192316341-802871029.png

(2)点击“SVN Update”后会弹出窗口显示更新的进度,如下:若上述框中的有文件出现亮红,说明来自配置库的内容与你本地修改内容合并时出现了冲突

https://images2015.cnblogs.com/blog/946221/201605/946221-20160504192333669-103539884.png

5.1.5提交更新(SVN Commit)

(1)本地文件修改后,若是需要更新到服务器上,则需要提交(Commit)最新的更新。 Commit的作用是将本地最新修改的文件同步到SVN服务端,供其他人来参考或者使用,当然使用之前,要先Update一下,来确保是最新的,在修改文件上击右键,出现菜单,选择“SVN Commit…”,如下:

https://images2015.cnblogs.com/blog/946221/201605/946221-20160504192419060-1747336606.png

(2)然后填写关于本次更新的日志(log message)。

https://images2015.cnblogs.com/blog/946221/201605/946221-20160504192432763-1457310483.png

(3)当出现下图所示提示框,则表明刚刚的修改已成功提交,并且当前的SVN版本号加1。

https://images2015.cnblogs.com/blog/946221/201605/946221-20160504192455951-2008971518.png

5.1.6撤销更改(Revert

在修改了某些文件后(文件未上传到配置库),需要返回到修改前的状态,则选中文件夹右键选择“Tortoise SVN”的“Revert...”项进行撤销,本地硬盘上的文件将恢复到修改前的内容,修改的内容将被删除。

 

5.1.7删除文件(Delete

(1)选中要被删除的文件,右键选择“Tortoise SVN”的“Delete”项,如下:

https://images2015.cnblogs.com/blog/946221/201605/946221-20160504192602451-956458788.jpg

(2)删除文件后,鼠标选中项目文件夹右键选择“SVN Commit…”项进行提交,提交方式同增加文件的提交方式,提交后则将新文件从配置库中删除。

5.1.8锁定和解锁(Get lock and Release lock)

(1)当项目需要时可以在本地硬盘中将迁出的内容进行锁定,选中要被锁定的文件右键选择“Tortoise SVN”的“Get lock...”项进行锁定(锁定后他人将无法修改此文件),系统弹出锁定信息框。  

(2)当文本文件锁定后,需要通过解锁他人才能继续对文件进行修改。其他人修改后无法提交的svn服务器中。

(3)选中被锁定的文件右键选择“Tortoise SVN”的“Release lock…”项进行解锁。

5.1.9获取历史文件(Show log)

Show log顾名思义是显示日志的作用,主要是显示该文件或者该目录被执行的操作,是被谁修改了,以及修改的时间和日期。鼠标选中文件夹右键选择“Tortoise SVN”的“Show log”项,系统弹出此路径下的所有文件版本信息,如下:

https://images2015.cnblogs.com/blog/946221/201605/946221-20160504192706451-580640897.jpg

5.1.10重命名文件(Rename

修改文件名,选中需要重命名的文件或文件夹,然后右键“Tortoise SVN”的“Rename”,在弹出的对话框中输入新名称,点击“OK”按钮,并将修改文件名后的文件或文件夹“SVN Commit…”提交到SVN服务器上。

5.1.11 分支
5.1.11.1 SVN的标准目录结构

(1)SVN的标准目录结构:trunk、branch、tags;目录在SVN中并没有特别的意义,这三个目录反映了软件开发的通常模式。

trunk:主干,是日常开发进行的地方

branches:分支,一些阶段性的release版本,这些版本是可以继续进行开发和维护的

tags:阶段性的发布版本,存放到这里

(2)日常开发的流程及问题

假说现在有一个游戏项目,项目经理说今天项目要上线了,我们要把代码打包部署,然后供玩家使用,玩家正在玩的时候我们还是要继续进行新需求的开发吧,加入我们不使用svn的目录结构,我们继续在原有的代码上开发,又过了两天,有玩家反馈说游戏有bug,根据玩家提供的bug信息,我们修复了bug,修复了bug后准备在下一次维护服务器的时候将修复bug后的代码部署到服务器上。

现在问题来了,我们还没准备好将正在开发的新功能上线,但是和新功能相关的代码已经提到svn了,bug改完也提到svn了,这个时候打包就会将新功能打到包里,这肯定是不允许的。那怎么解决呢?

(3)使用svn的标准目录结构

项目上线后,将上线时的代码切出一个分支branches,然后在主干继续进行新需求的开发,当上线的项目出现bug时,开发人员在分支上修复bug(分支的功能和svn是一样的),修复完bug后将代码打包重新部署,然后将代码和并到主干trunk上,当项目线上运行一段时间已经很稳定时,将项目切出一个tags,tags一般是只读的。这样就比较好的解决了新需求开发与bug修复的矛盾

5.1.11.2创建分支(branch/tag)

右击已经存在的SVN项目->branch/tag,弹出框的to path输入新的分支名称,建议/branch/xxx,点击OK就创建出xxx分支.(建议创建前先svn update)。这个操作速度非常快,新建的branch在repository中其实只是一个指向trunk某个revision的软连接而已,并没有真的复制文件。

5.1.11.3切换分支(switch)

右击已经存在的SVN项目->switch,弹出框的to path输入分支名称,上面新建了/branch/xxx分支,如果想要切换/branch/xxx分支,则输入/branch/xxx点击OK.

5.1.11.4分支同步

branch和trunk在独立、并行地开发。为了防止在“错误”的道路上越走越远,现在branch意识到是时候和trunk来一次同步了(trunk合并到branch)。

(1)在本地trunk中先update一下,有冲突的解决冲突,保证trunk和repository已经完全同步。

(2)然后在/branches/上右键,依次选择"TortoiseSVN" -> “merge a range of revisions”,在弹出的窗口中选择第一项"Merge a range of revision",这个类型的Merge已经介绍得很清楚,适用于将某个分支或主线上提交的多个revision间的变化合并到另外一个分支上。

(3)由于是要从trunk合并到branch,理所当然这里的"URL to merge from"应该填trunk的路径,"Revision range to merge"很好理解,就是你要将trunk的哪些revision所对应的变化合并到branch中,可以是某一连串的revision,比如4-7,15-HEAD,也可以是某个单独的revision号。由于在r15中,trunk修改了bbb文件,所以这里的revision只需填15即可。

(4)在这里只需保留默认设置即可。在点击Merge按钮前你可以先Test merge一把,看成功与否,以及merge的详细信息。点击Merge按钮后trunk所做的修改将同步到branch中。

(5)成功后会出现如下的界面。

(6)此时,本地的分支上就已经有了主干分支修改的代码,但是服务器中的分支还没有。此时需要svn commit一下,以同步到svn服务器的代码。

5.1.11.5 合并分支

(1)在本地副本上进行操作,选择主干上的源代码文件,右键选择tortoiseSVN菜单,点击合并。(将trunk代码 拉回本地,checkout到本地。在trunk 代码上 使用merge)如图

(2)选择merge two different trees,如图,也可使用merge a range of revisions 但在报 from url must be ancestrally related to to url 错误的情况下选择使用第二种。

(3)在from中选择 trunk路径,在to中选择 branches 路径,由于是在trunk上把branches的代码合并过来,理所当然这里的“from”应该填trunk的路径,to选branches的路径。如图

(4)选择默认选项即可,建议合并merge时,使用test merge 来查看有多少冲突,如果冲突较多,可分多次合并,最后点击merge进行合并。合并成功后需要将主干(trunk)上合并过的文件提交到svn代码库,如图

图中各项的含义:

  • -ignore ancestry : 忽略根源
  • -ignore line endings : 忽略行结尾
  • -compare whitespaces : 比较空白字符
  • -ignore whitespace changes : 忽略空白字符的变化
  • -ignore all whitespaces : 忽略所有空白字符

(5)确定合并后的代码,将主干(trunk)上合并过的文件提交commit到svn代码库

5.1.11.6删除分支

右击已经存在的SVN项目->repo browser,弹出框的左边选择需要删除的分支右击->delete

5.1.12 解决冲突

对于刚接触svn的人来说,svn冲突后,不能提交是件让人很郁闷的事情。最让人郁闷的事,是代码间的覆盖。你把我代码盖了,我会很火大的。谁把谁的盖了都不爽。

5.1.12.1 版本冲突原因

假设A、B两个用户都在版本号为100的时候,更新了kingtuns.txt这个文件,A用户在修改完成之后提交kingtuns.txt到服务器,这个时候提交成功,这个时候kingtuns.txt文件的版本号已经变成101了。同时B用户在版本号为100的kingtuns.txt文件上作修改,修改完成之后提交到服务器时,由于不是在当前最新的101版本上作的修改,所以导致提交失败。此时B用户选择更新,更新就会出现代码冲突的问题。

5.1.12.2版本冲突现象

冲突发生时,subversion会在当前工作目录中保存所有的目标文件版本[上次更新版本、当前获取的版本(即别人提交的版本)、自己更新的版本、目标文件]。如上图所示产生冲突的文件名为Constant.java,则对应的文件名分别是:

Constant.java.r24

Constant.java.r25

Constant.java.mine

Constant.java。同时在目标文件中标记来自不同用户的更改。

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

Constant.java.r24----这个文件是A用户最初的13版本的Constant.java。它的内容是:13版本内容

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

Constant.java --------由于A用户选择了直接更新,此文件就是svn将最新版本24与A用户的修改合并后的文件。

5.1.12.3代码中经典的标志

5.1.12.4 第一种解决方式

放弃自己修改的内容,进行Revert操作,使其文件成为当前版本的最初内容。然后update使其文件成为最新版本,再在最新版本上修改提交。操作如下图:

==>

5.1.12.5第二种解决方式

(1)右键冲突的文件>>>TortoiseSVN>>>>Edit conflicts>>>,会弹出解决冲突界面。

(2)软件的界面布局

https://images0.cnblogs.com/blog2015/658978/201503/122045176366719.png

 (3)某块代码的合并

https://images0.cnblogs.com/blog2015/658978/201503/122046134021589.png

 (4)使用某单方面的文件

https://images0.cnblogs.com/blog2015/658978/201503/122046495749072.png

(5)把我的代码插入他的代码前面

https://images0.cnblogs.com/blog2015/658978/201503/122047387306023.png

(6)把我的代码插入他的代码前面-效果

https://images0.cnblogs.com/blog2015/658978/201503/122047556838936.png

 (7)保存后,重新提交到svn就可以了。

5.1.12.6 第三种解决方式

(1)我们可以将上图的用户Constant.java的内容整理下,使其满足条件,然后选择TortoiseSVN>>>>Resolve,这时Constant.java.mine、Constant.java.r13、Constant.java.r14将会消失。用户A就可以顺利提交了。

5.1.13 SVN回滚

在代码的编写过程中,难免有些错误需要修改,或者想从以前的文件进行代码修改,这样就涉及到版本的追踪,如果你以前提交时日志写的非常清楚,那版本追踪回滚起来就事半功倍、得心应手。

       选中要回滚的文件,右键>>TortoiseSVN>>>show log >>选中要回滚的版本号>>>右键>>

  1. 点击 - Revert to this verision,此版本之后的所有操作都会被删除。
  2. 点击 -- Revert changes from this verision,选中的版本号中所作的修改全部被删除。

做完上述操作后,本地的代码会回滚,但是svn服务器中的代码并没有回滚,记得commit一下。

5.1.14 svn链接地址重定向

5.2 命令行中使用svn

5.2.1 客户端
5.2.1.1 导入项目

svn import -m "日志信息" 本地文件路径 svn路径

5.2.1.2 检出

svn  checkout  http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名

或者:svn  co  http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名

注意:

  • 如果不带--password 参数传输密码的话,会提示输入密码,建议不要用明文的--password 选项。
  • 其中 username 与 password前是两个短线,不是一个。
  • 不指定本地目录全路径,则检出到当前目录下。
5.2.1.3 增加文件

(1)增加单一文件

①svn add 文件名

注:告诉SVN服务器要添加文件了,还要用svn commint -m真实的上传上去!

②svn add *.java <- 添加当前目录下所有的java文件

svn commit -m “添加我的测试用全部java文件” *.java

(2)创建纳入版本控制下的新目录
svn mkdir 文件名   在本地创建纳入svn管理的文件目录


svn mkdir  URL路径 -m "备注"    直接在svn仓库上创建一个文件夹目录

(3)添加所有新文件
svn add  * --force   添加当前目录下不处于svn版本管理下的所有文件


svn add *  添加当前目录下的所有文件,即使该文件在svn上已经存在。如果该文件已经在svn上存在,那么会提示你( is already under version control   文件已经处于SVN的版本管理了)

5.2.1.4 更新文件

svn update

svn update -r 修正版本 文件名

svn update 文件名

或者 svn up

svn update <- 后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本

svn update -r 200 test.java <- 将版本库中的文件 test.java 还原到修正版本(revision)200

svn update test.java <- 更新与版本库同步。

            提交的时候提示过期冲突,需要先 update 修改文件,

            然后清除svn resolved,最后再提交commit。

5.2.1.5 提交更新

svn commit -m “提交备注信息文本” [-N] [--no-unlock] 文件名

svn ci -m “提交备注信息文本” [-N] [--no-unlock] 文件名

必须带上-m参数,参数可以为空,但是必须写上-m,否则会出现如下的结果:

5.2.1.6 删除文件

svn delete  * --force  删除所有的文件并记录到下次提交里

svn rm(del) URL路径 -m "备注"   删除svn路径下的文件,本地文件不会删除,更新后本地文件才会删除

svn rm(del) 文件名 -m "备注"  本地删除文件并记录到下次提交里

注:手动在本地删除文件的话svn是不会识别和记录的,需要执行下面的命令将改动记录添加到svn的版本管理里之后提交到svn服务器

推荐通过先本地删除,再提交的的操作:

svn delete 文件名

svn ci -m “删除备注信息文本”

例如:要删除svn服务器上的文件test。java可有两种方式操作,推荐使用第②种操作。

  • svn delete https://127.0.0.1:9999/svn/oa/test.java -m “删除测试文件test.java”
  • svn delete test.java

svn ci -m “删除测试文件test.java”

5.2.1.7 导出

①svn  export  [-r 版本号]  http://路径(目录或文件的全路径) [本地目录全路径] --username 用户名————服务器到本地

 ②svn  export  本地检出的(即带有.svn文件夹的)目录全路径  要导出的本地目录全路径————本地到本地其他路径

注:①第一种从版本库导出干净工作目录树的形式是指定URL,如果指定了修订版本号,会导出相应的版本,如果没有指定修订版本,则会导出最新的,导出到指定位置。如果省略 本地目录全路径,URL的最后一部分会作为本地目录的名字。
②第二种形式是指定本地检出的目录全路径 到 要导出的本地目录全路径,所有的本地修改将会保留,但是不在版本控制下(即没提交的新文件,因为.svn文件夹里没有与之相关的信息记录)的文件不会拷贝。

5.2.1.8 加锁/解锁

svn lock -m “加锁备注信息文本“ [--force] 文件名

svn unlock 文件名

5.2.1.9 比较差异

(1)比较差异的命令

svn diff 文件名 <-将修改的文件与基础版本比较

svn diff -r 修正版本号m:修正版本号n 文件名   <- 对 修正版本号28和 修正版本号29 比较差异

(2)差异比较结果解读

(1)Index: test.txt
(2)============================================================
(3)--- test.txt (revision 1002)
(4)+++ test.txt (revision 1003)
(5)@@ -2,4 +2,5 @@
(6)To sunny Day
(7)-To wether Day
(8)+sweat Sunny
(9)Nonthon  changed
(10)Next time GO GO


第一行,显示文件
第二行,分隔符
第三行,老版本用“-”表示
第四行,新版本用“+”表示
第五行,老版本从第2行开始显示4行,新版本从2行开始显示。显示5行
第六行,两个版本都有
第七行,只有老版本有
第八行,只有新版本有
第九行,两个版本都有
第十行,两个版本都有
==================

(3)unified diff format统一差异格式

一种标准的文件比较格式, 不同的行之前标上'+'或者'-'表示不同的文件, 新文件用'+'表示, 旧文件用'-'表示,@@表示不同出现在哪一行。

提示:

使用svn diff 指令对比文件差异的时候如果出现如下错误:提示:Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream

原因:

 svn add的时候会首先读取一部分文字来判断该文件的类型  如果文件内容开头为汉字的话则会被识别为二进制文件,如果是字母或数字的话则会被识别为text/plain文件  text/plain文件是可以正常输出修改对比结果的,处理方式选择:

①则将该文件设置为text/plain的文件类型,然后在进行修改,设置之后的修改记录对比的时候就可以正确显示对比的结果了

②配置svn config文件 ,在添加文件的时候就正确的设置他的类型自动匹配:(只对add或者import文件时起作用,如果本来就存在服务器中的文件没效果。)

#修改subversion的配置文件:      linux—  open
      windows7— C:\Users\${user}\AppData\Roaming\Subversion\config
      #设置enable-auto-props
      enable-auto-props = yes
      #在[auto-props]模块增加
      *.js = svn:mime-type=text/javascript
      *.css = svn:mime-type=text/css
      *.html = svn:mime-type=text/heml
      *.txt = svn:mime-type=text/plain
      *.png = svn:mime-type=image/png
      *.jpg = svn:mime-type=image/jpeg

           ③使用--froce强制输出对比结果

例如:svn diff -r 1002:1003  --froce  

④使用 svn propset svn:mime-type pain 文件名/路径 设置文件的mime-type属性 ,之后添加的添加的修改内容则可以正常输出显示对比内容

5.2.1.10 SVN 帮助

svn help <- 全部功能选项

svn help ci <- 具体功能的说明

5.2.1.11 把工作拷贝更新到别的URL

svn switch http://目录全路径 本地目录全路径

例子:

svn switch http://localhost/test/456 . <- (原为123的分支)当前所在目录分支到localhost/test/456

5.2.1.12 解决冲突

svn resolved [本地目录全路径]

例子:

$ svn update

C foo.c

Updated to revision 31.

如果你在更新时得到冲突,你的工作拷贝会产生三个新的文件:

$ ls

foo.c

foo.c.mine

foo.c.r30

foo.c.r31

当你解决了foo.c的冲突,并且准备提交,运行svn resolved让你的工作拷贝知道你已经完成了所有事情。

你可以仅仅删除冲突的文件并且提交,但是svn resolved除了删除冲突文件,还修正了一些记录在工作拷贝管理区域的记录数据,所以我们推荐你使用这个命令。

不checkout而查看输出特定文件或URL的内容

svn cat http://文件全路径

例子:

svn cat http://localhost/test/readme.txt

5.2.1.13 查看

(1)查看log信息

svn log  文件名  查看这个文件的所有log信息 
svn log * 检查当前文件夹的log历史
svn log textPlain.txt@88284  查看文件textPlain.txt版本号为88284的log信息,在次版本号之后提交的Log信息不会显示,因为没添加到版本号为88284的文件log里
svn log trunk -l 5   显示trunk文件夹最近5条Log信息
查看日志

svn log 文件名

例子:

svn log test.php<- 显示这个文件的所有修改记录,及其版本号的变化

(2)查看服务器上文件列表
svn list(或者 svn ls 本地/SVN路径  查看路径下的文件列表,可以是本地路径或者SVN路径(默认为本地路径)

svn list --recursive 本地/SVN路径   按照层级打印文件列表

查看文件或者目录状态

svn st 目录路径/名

svn status 目录路径/名<- 目录下的文件和子目录的状态,正常状态不显示

             【?:不在svn的控制中;  M:内容被修改;C:发生冲突;

              A:预定加入到版本库;K:被锁定】

svn  -v 目录路径/名

svn status -v 目录路径/名<- 显示文件和子目录状态

              【第一列保持相同,第二列显示工作版本号,

               第三和第四列显示最后一次修改的版本号和修改人】

注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,
  原因是svn在本地的.svn中保留了本地版本的原始拷贝。

(3)查看文件详细信息

svn info 文件名

例子:

svn info test.php


(4)查看文件信息
svn info 文件名/路径名  查看文件的信息


(5)复制文件
svn copy 3text.txt 路径  文件从当前文件夹复制到填写的路径下,然后可以直接提交,不需要再使用add添加文件了


(6)直接查看文件里的内容
svn cat 文件路径   查看SVN上的文件内容,不需要将文件checout到本地,后面跟的可以是文件名或者路径
svn cat -r 88258 test  查看svn下88258版本对应的文件内容
cat 文件名  查看本地文件内容

5.2.1.14 回滚

(1)恢复本地修改

svn revert [--recursive] 文件名   <—如果该文件更新后没提交,那么将回滚至服务器最新的版本,本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复被删除的目录。不会恢复被删除的文件

svn revert index.jsp <- 丢弃对一个文件的修改

svn revert --recursive . <-回退整个文件夹至服务器最新版本,. 为当前目录

(2)恢复服务器的文件

如果文件提交过了,那么先将该文件提交一下,然后log出他最后一次的提交记录(假如是31),然后使用merge命令将代码回退到 30版本

  •  恢复所有的文件到指定版本,恢复完成后,执行提交

  • 恢复指定的文件到指定的版本

5.2.1.15 分支

.从trunk合并到分支及反向合并
--从trunk合并到branch
    cd branch/1.0 进入分支目录
    svn merge trunk目录   从trunk合并代码


--从branch合并到trunk
    cd trunk 进入trunk目录
    svn merge branch目录   从分支合并到trunk

19、新建一个分支copy

svn copy branchA branchB  -m "make B branch" // 从branchA拷贝出一个新分支branchB

20、合并内容到分支merge

svn merge branchA branchB  // 把对branchA的修改合并到分支branchB

5.2.1 服务端

svnadmin create app

5.3 Eclipse中使用svn

5.3.1安装Subclipse插件(方式一)

(1)打开eclipse,在Help菜单中找到marketPlace,点击进入。

(2)在搜索框Find中输入subclipse,点击右边的Go按钮查询;subclipse找到之后,点击右下角的按钮install安装。

(3)选择需要安装的一些文件,默认全选即可,点击Next进行下一步操作。

(4)同意许可协议,勾选“I accept the terms of the license agreements”,然后点击Finish完成即可。

  

(5)安装过程展示,安装过程中可能会出现一些提示,同意即可。

(6)subclipse安装完成之后需要重启eclipse。

(7)subclipse usage(subclipse使用情况报告)可勾选可不选,自由决定。一般不用勾选。这样就算安装完成了。

  

5.3.2 安装subclipse插件(方式二)

(1)具体操作:打开Eclipse --> Help --> Install New Software --> 点击add按钮,输入下载地址:http://subclipse.tigris.org/update_1.10.x,点击OK。

(2)将Subclipse和SVNKit打勾后,一路next或agree到结束即可。

5.3.3 安装subclipse插件(方式三)

具体操作:百度搜索subclipse-site-1.10.x(看自己想安装哪个版本) --> 解压缩后在eclipse目录下找到dropins文件夹,进入dropins文件夹并新建一个文件夹名为svn,将features和plugins文件夹复制到svn目录下-->重启下Eclipse即可。

5.3.4 SVN资源库

(1)subclipse安装完成后,就可以使用SVN了。在Window菜单中依次执行:Show View --> other。

(2)在弹出的Show View对话框中检索SVN关键字,即可快速找到SVN资源库,选中,确定。

(3)“SVN资源库”会出现在“问题视图”窗口中。注:问题视图即我们常说的“后台”,用于显示代码或项目配置的错误,双击错误项可以快速定位代码。

(4)在SVN资源库窗口的空白处单击鼠标右键,“新建”一个“资源库位置”。

(5)添加新的SVN资源库,在位置“location”或者“URL”中输入正确的服务器地址,然后Finish即可。

(6)输入你的用户名和密码,点击“保存密码”,以便于下次更快速登录。

5.3.5 常用操作
5.3.5.1上传项目

(1)右键选择需要上传的项目,在Team下Share Project。

(2)选择SVN资源库,点击Next继续下一步。

       (3)将项目共享至SVN资源库,选择现有资源库或者创建新位置,点击next下一步。

       (4)选择SVN资源库中的文件夹名,或者可以使用指定的模块名,这个是已经在服务器指定好的,finish完成。

(5)“是否现在打开此透视图”提示。

       (6)为了进一步看清效果,我们现在可以在网页中打开看看。打开项目文件夹,空的!需要执行下步。

(7)提交:同样,右键单击项目,选择Team,这一次我们发现其中多了很多项选择,点击“提交”。

(8)提交地址,可以在此写入一些操作说明,点击OK。

(9)再次回到网页中,可以看到所有的文件都已经上传上去了。

5.3.5.2 检出

(1)切换到SVN资源库,右键单击想要检出的项目,选择“检出为……”

       (2)作为工作空间中的项目检出,输入项目名称,为了保持一致性可以直接默认,然后Finish。

       (3)检出之后的项目会直接呈现在eclipse中,实际是将项目导出到了设定的工作空间。

5.3.5.3导出

(1)导出是指可以直接导出到本地电脑上的任意位置。同样,右键单击所选项目,选择“导出”项。

(2)在弹出的对话框中通过浏览按钮选择导出目录即可。

5.3.5.4删除svn中的项目

(1)切换至SVN资源库中,右键单击想要删除的项目,选择“删除”。

(2)编辑提交注释,点击OK完成。

5.3.5.5 还原文件

选中项目>>右键>>team>>还原>>选中要还原的文件,确定即可。

5.3.3.6 切换分支

       选中项目>>右键>>team>>切换>>选中要要切换的分支路径,确定即可。

5.3.6 注意事项

提交代码之前应该先“更新”一下,这样做的目的是为了能使自己的版本与别人更新的版本保持一致,保证代码不会冲突。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/111163?site
推荐阅读
相关标签
  

闽ICP备14008679号