23-1 SVN(版本控制系统)基本使用教程

1 TortoiseSVN的基本使用

SVN 的一些概念

  • repository(源代码库):源代码统一存放的地方
  • Checkout(提取):当你手上没有源代码的时候,你需要从repository checkout一份
  • Commit(提交):当你已经修改了代码,你就需要Commit到repository
  • Update (更新):当你已经Checkout了一份源代码, Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更

日常开发过程其实就是这样的(假设你已经Checkout并且已经工作了几天):Update(获得最新的代码) -->作出自己的修改并调试成功 --> Commit(大家就可以看到你的修改了) 。

如果两个程序员同时修改了同一个文件呢, SVN 可以合并这两个程序员的改动,实际上SVN管理源代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN都会自动合并两种修改。如果是同一行,SVN 会提示文件 Conflict, 冲突,需要手动确认。

1.1 浏览仓库

弹出如下界面:

点击ok,要求输入用户名和密码

1.2 checkout 检出

Checkout 操作是用来从版本库创建一个工作副本。工作副本是开发者私人的工作空间,可以进行内容的修改,然后提交到版本库中。

Checkout 操作将SVN仓库的代码烤到本地,比如你现在参与一个团队项目,项目代码在你之前肯定已经写了很多了,你可以通过checkout项目代码,获得整个项目。

进入如下界面:

其中URL我可以在SVN服务器获取到。

点击ok,弹出如下界面。

点击ok,此时桌面多出一个图标。

此时,本地的lucky目录与svn中的lucky仓库关联上了。

注意事项:

   .svn这个隐藏目录记录着两项关键信息:工作文件的基准版本和一个本地副本最后更新的时间戳,千万不要手动修改或者删除这个.svn隐藏目录和里面的文件!!,否则将会导致你本地的工作拷贝(静态试图)被破坏,无法再进行操作。

TortoiseSVN图标介绍

(1)一个新检出的工作复本使用绿色的对勾重载,表示Subversion状态正常。

 (2)在你开始编辑一个文件之后,状态就变成了已修改,而图标重载已变成了红色感叹号。通过这种方式,你可以很容易地看出那些文件从你上次更新工作复本被修改过,且需要提交

1.3 执行变更

当检出之后,你就可以做很多操作来执行变更。编辑是最常用的操作。你可以编辑已存在的文件,例如进行文件的添加/删除操作。

你可以添加文件/目录。但是这些添加的文件目录不会立刻成为版本库的一部分,而是被添加进待变更列表中,直到执行了 commit 操作后才会成为版本库的一部分。

同样地你可以删除文件/目录。删除操作立刻将文件从工作副本中删除掉,但该文件的实际删除只是被添加到了待变更列表中,直到执行了 commit 操作后才会真正删除。

Rename 操作可以更改文件/目录的名字。"移动"操作用来将文件/目录从一处移动到版本库中的另一处。

<1>add操作

在svntest项目文件下,新建一个b.txt文件,提交到版本库的方法如下2种:

   1. 先提到变更列表中,再commit到配置库中,选择新增文件,右键SVN菜单执行“Add“操作提交到”变更列表中”,然后右键SVN菜单执行”SVN Commit”提交到版本库中。

   2. 不提交到变更列表中,而是直接commit配置库中,选择该文件,右键svn菜单执行”SVN Commit”操作。

打开桌面上的本地lucky文件夹

此时会出现下图

这就说明了这个ItemsDao.java文件已经添加到了变更列表中

<2>delete操作

标记删除操作,本地文件会删除,我们需要进行提交,才能真正从服务器删除

弹出如下界面:

<3>commit操作

将ItemsDao.java文件添加到svn服务器

此时弹出如下界面:

提交结果图:

点击ok即可。

<4>查看当前日志

弹出如下界面:

<5>update 操作

顾名思义,update 操作是用来更新版本库的。这个操作将工作副本与版本库进行同步。由于版本库是由整个团队共用的,当其他人提交了他们的改动之后,你的工作副本就会过期。

让我们假设 Tom 和 Jerry 是一个项目的两个开发者。他们同时从版本库中检出了最新的版本并开始工作。此时,工作副本是与版本库完全同步的。然后,Jerry 很高效的完成了他的工作并提交了更改到版本库中。

此时 Tom 的工作副本就过期了。更新操作将会从版本库中拉取 Jerry 的最新改动并将 Tom 的工作副本进行更新。

操作方法如下:

更新本地代码与SVN服务器上最新的版本一致,只要在需要更新的文件夹上点击右键或者在文件下空白处点击右键,选择”SVN Update” (获取指定版本中的内容,点击右键执行SVN菜单中的“Update to reversion“),就可以了。

弹出如下界面:

<6> SVN还原(SVN Revert)

右击想要回退的文件或者文件夹,在TortoiseSVN弹出菜单中选择”Update to reversion…” 然后会弹出一个窗口,如下:

比如说我们要回退到第1个版本只需要在Revision中填写相应的版本号,然后点击ok即可。

<7>检查修改(Check for modifications)

此功能可以显示你所做的修改有哪些还没有提交的,此功能不光能看到对文件的修改变化,所有的变化都能看到,包括增加文件或者目录,删除文件或者目录,移动文件或者目录等,如果你点击了检查版本库,那你还可以看到版本库里的改动,既别人提交了哪些文件的改动,你还没更新到本地,如下:

<8>Import将本地资源导入到svn服务器

<9>冲突问题与解决

多个用户同时操作同一个文件时,就可能产生冲突情况。

2.IDEA下 SVN 配置与使用

(1)IDEA下svn配置

前提是我们的电脑上已经安装了TortoiseSVN.

(2)share project

弹出如下界面:

进入如下界面:

弹出如下界面:

点击ok,等待上传完成。

上传完成后,顶部菜单栏会多出几个按钮。

上图5个按钮的作用:

<1>Update Project 更新项目
<2>Commit changes 提交项目上所有变化文件
<3>Compare with the Same Repository Version 当前文件与服务器上该文件通版本的内容进行比较。如果当前编辑的文件没有修改,则是灰色不可点击。
<4>Show history 显示当前文件的历史记录
<5>Revert 还原当前被修改的文件到违背修改的版本状态下

参考文献:https://www.cnblogs.com/0zcl/p/7309766.html

原文地址:https://www.cnblogs.com/luckyplj/p/15069362.html