zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    hdoj--1162--Eddy's picture(最小生成树)
    hdoj--1087--Super Jumping! Jumping! Jumping!(贪心)
    hdoj--1051--Wooden Sticks(LIS)
    hdoj--5532--Almost Sorted Array(正反LIS)
    CodeForces--609C --Load Balancing(水题)
    poj--2631--Roads in the North(树的直径 裸模板)
    CodeForces--606A --Magic Spheres(模拟水题)
    CodeForcess--609B--The Best Gift(模拟水题)
    hdoj--1201--18岁生日(模拟)
    poj--1985--Cow Marathon(树的直径)
  • 原文地址:https://www.cnblogs.com/luckyplj/p/15069362.html
Copyright © 2011-2022 走看看