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 注意事项

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

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐