`

SVN子命令diff三大用法详解

    博客分类:
  • SVN
阅读更多

  本节接着上篇文章介绍SVN使用SVN子命令log,list,cat,diff查看所有及特定文件版本信息,本节主要介绍SVN子命令diff的用法,希望大家来一起学习。

  检查历史修改的详情

  我们已经看过SVN子命令 diff—使用标准区别文件格式显示区别,它在提交前用来显示本地工作拷贝与版本库的区别。

  事实上,SVN子命令diff有三种不同的用法:

  检查本地修改

  比较工作拷贝与版本库

  比较版本库与版本库

  比较本地修改

  像我们看到的,不使用任何参数调用时,svn diff将会比较你的工作文件与缓存在.svn的“原始”拷贝:

  $ svn diff

  Index: rules.txt

  ===================================================================

  --- rules.txt    (revision 3)

  +++ rules.txt    (working copy)

  @@ -1,4 +1,5 @@

  Be kind to others

  Freedom = Responsibility

  Everything in moderation

  -Chew with your mouth open

  +Chew with your mouth closed

  +Listen when others are speaking

  [/pre]比较工作拷贝和版本库

  如果传递一个--revision(-r)参数,你的工作拷贝会与指定的版本比较。

  $ svn diff -r 3 rules.txt

  Index: rules.txt

  ===================================================================

  --- rules.txt    (revision 3)

  +++ rules.txt    (working copy)

  @@ -1,4 +1,5 @@

  Be kind to others

  Freedom = Responsibility

  Everything in moderation

  -Chew with your mouth open

  +Chew with your mouth closed

  +Listen when others are speaking

  [/pre]SVN子命令diff比较版本库与版本库

  如果通过--revision (-r)传递两个通过冒号分开的版本号,这两个版本会进行比较。

  $ svn diff -r 2:3 rules.txt

  Index: rules.txt

  ===================================================================

  --- rules.txt    (revision 2)

  +++ rules.txt    (revision 3)

  @@ -1,4 +1,4 @@

  Be kind to others

  -Freedom = Chocolate Ice Cream

  +Freedom = Responsibility

  Everything in moderation

  Chew with your mouth open

  [/pre]与前一个修订版本比较更方便的办法是使用--change (-c):

  $ svn diff -c 3 rules.txt

  Index: rules.txt

  ===================================================================

  --- rules.txt    (revision 2)

  +++ rules.txt    (revision 3)

  @@ -1,4 +1,4 @@

  Be kind to others

  -Freedom = Chocolate Ice Cream

  +Freedom = Responsibility

  Everything in moderation

  Chew with your mouth open

  [/pre]最后,即使你在本机没有工作拷贝,还是可以比较版本库的修订版本,只需要在命令行中输入合适的URL:

  $ svn diff -c 5 http://svn.example.com/repos/example/trunk/text/rules.txt…

  [/pre]浏览版本库

  通过svn cat和svn list,你可以在未修改工作修订版本的情况下查看文件和目录的内容,实际上,你甚至也不需要有一个工作拷贝。

  SVN子命令 cat           

  如果你只是希望检查一个过去的版本而不希望察看它们的区别,使用svn cat:

  $ svn cat -r 2 rules.txt

  Be kind to others

  Freedom = Chocolate Ice Cream

  Everything in moderation

  Chew with your mouth open

  [/pre]你可以重定向输出到一个文件:

  $ svn cat -r 2 rules.txt > rules.txt.v2

  [/pre]              svn list           

  svn list可以在不下载文件到本地目录的情况下来察看目录中的文件:

  $ svn list http://svn.collab.net/repos/svn

  README,branches/,clients/,tags/,trunk/

  [/pre]如果你希望察看详细信息,你可以使用--verbose(-v) 参数:

  $ svn list -v http://svn.collab.net/repos/svn

  20620 harry            1084 Jul 13  2006 README

  23339 harry                 Feb 04 01:40 branches/

  21282 sally                 Aug 27 09:41 developer-resources/

  23198 harry                 Jan 23 17:17 tags/

  23351 sally                 Feb 05 13:26 trunk/

  [/pre]这些列告诉你文件和目录最后修改的修订版本、做出修改的用户、如果是文件还会有文件的大小,最后是修改日期和项目的名字。

  警告

  没有任何参数的SVN子命令 list命令缺省使用当前工作拷贝的版本库URL,而不是本地工作拷贝的目录。毕竟,如果你希望列出本地目录,你只需要使用ls(或任何合理的非UNIX等价物)。

  获得旧的版本库快照,除了以上的命令,你可以使用带参数--revision的svn update和svn checkout来使整个工作拷贝“回到过去”[8]:

  $ svn checkout -r 1729 # Checks out a new working copy at r1729…

  $ svn update -r 1729 # Updates an existing working copy to r1729…

  [/pre]提示许多Subversion新手使用前面的svn update实例来“回退”修改,但是你不能提交修改,你获得有新修订版本的过时工作拷贝也是没有用的。关于如何“回退”,我们可以看“找回删除的项目”一节。

   最后,如果你构建了一个版本,并且希望从Subversion打包文件,但是你不希望有讨厌的.svn目录,这时你可以导出版本库的一部分文件而没 有.svn目录。就像svn update和svn checkout,你也可以传递--revision选项给svn export:

  $ svn export http://svn.example.com/svn/repos1 # Exports latest revision…

  $ svn export http://svn.example.com/svn/repos1 -r 1729

  # Exports revision r1729。部分SVN子命令相关内容讲解完毕。

分享到:
评论

相关推荐

    svn linux下命令详解

    svn status 命令还可以使用-v选项来显示文件和子目录的状态。例如:svn status -v test.php。 7. 删除文件 svn delete 命令用于删除文件。该命令的基本语法为:svn delete <文件名> -m “<删除信息>”。例如:svn ...

    svn常用命令介绍

    在使用SVN进行项目管理时,掌握一些常用的SVN命令是非常必要的。以下是一些核心的SVN命令及其详细解释: 1. **初始化仓库(svnadmin create)**: 在一个新的目录下创建一个SVN仓库,这将生成一个包含所有必需文件...

    SVN常用命令(使用频率最高的)

    **SVN常用命令详解** 版本控制系统Subversion(简称SVN)是软件开发中不可或缺的工具,它用于管理和跟踪代码的变化,使得多人协作开发变得井然有序。以下是一些使用频率最高的SVN命令,确保你能快速上手并有效地...

    SVN打基线常用命令使用介绍

    #### 三、SVN打基线常用命令详解 在了解了打基线的基本概念之后,接下来详细介绍一些常用的SVN命令,这些命令可以帮助我们在SVN中有效地进行打基线操作。 ##### 1. 创建标签(tag) 创建标签是一种非常简单的方式...

    SVN命令及外部定义用法

    ### SVN命令详解 1. **`svn checkout (简称 svn co)`**:用于从服务器上检出一份工作副本到本地。 2. **`svn update (简称 svn up)`**:更新本地工作副本,获取服务器上的最新更改。 3. **`svn commit (简称 svn ci...

    svn 命令详解

    ### SVN 命令详解 #### 一、将文件checkout到本地目录 - **命令格式**:`svn checkout <path> (path是服务器上的目录)` - **示例**:`svn checkout svn://192.168.1.1/pro/domain` - **简写**:`svn co` **解释*...

    svn 回退/更新/取消至某个版本命令

    ### SVN回退/更新/取消至某个版本命令详解 #### 一、SVN简介 Subversion(简称SVN)是一款开源版本控制系统软件,用于管理文件和目录,以及这些文件目录随时间推进产生的变更。SVN支持多种操作系统,包括Windows、...

    使用SVN进行版本控制 使用SVN1.2

    #### 三、SVN常用命令详解 1. **svn checkout (co)** - **作用**:检出仓库中的文件或目录到本地工作副本。 - **示例**:`svn checkout http://example.com/repo/project` 2. **svn commit (ci)** - **作用**...

    SVN使用SVN使用SVN使用

    `svn switch`命令允许你在不同分支或修订版本间切换,而`svn diff`则可以显示文件之间的差异,帮助定位和理解代码变更。 协同工作时,冲突是难以避免的。当两个或更多用户同时修改同一份文件时,SVN会检测到冲突并...

    svn命令大全

    ### SVN命令大全详解 #### 一、将文件Checkout到本地目录 **命令**: `svn checkout path` (其中`path`是服务器上的目录) **示例**: `svn checkout svn://192.168.1.1/pro/domain` **简写**: `svn co` **解释**: 这...

    Linux下svn常用命令

    ### Linux 下 SVN 常用命令详解 #### 一、检查出版本库 (Checkout) **命令格式:** ``` svn checkout [URL] [工作拷贝目录] ``` **示例:** ``` svn checkout svn://192.168.0.150/edp ``` **说明:** 此命令用于从...

    svn命令在linux下的使用

    ### SVN命令在Linux下的使用详解 #### 一、SVN Checkout (检出) **命令格式:** `svn checkout [URL] [本地目录]` - **功能:** 将指定的版本库目录或文件检出到本地目录。 - **示例:** `svn checkout svn://192...

    SVN版本控制工具使用详解

    SVN版本控制工具使用详解 SVN(Subversion)是一种自由开源的版本控制系统,可以将代码恢复到早期版本,或者检查数据修改的历史,这些数据可以是源代码,也可以是其他类型的文件。其功能包括根据文件修改的次数自动...

    SVN常用命令

    - **说明**: 可以单独使用`svn help`查看所有SVN命令的帮助列表,或者使用`svn help <子命令>`查看特定子命令的帮助信息。 - **示例**: - 查看所有命令的帮助列表: `svn help` - 查看`svn commit`命令的帮助信息: ...

    svn图形界面化工具的使用

    【SVN图形界面化工具的使用详解】 SVN(Subversion)是一种版本控制系统,它允许团队协作,跟踪文件和目录的变化,以及恢复旧版本的文件。对于初学者来说,使用图形界面化工具可以更直观地理解和操作SVN。本文将...

    linux下使用svn客户端

    ### Linux 下使用 SVN 客户端重要知识点详解 #### 一、概述 Subversion (SVN) 是一种广泛使用的版本控制系统,主要用于软件开发过程中管理源代码。在 Linux 系统中,用户可以通过命令行工具来操作 SVN,进行版本库...

    SVN用法总结,介绍具体svn的各种命令

    ### SVN使用指南与命令详解 #### 一、概述 Subversion(简称SVN)是一种集中式的版本控制系统,广泛应用于软件开发和其他需要版本控制管理的领域。通过SVN,团队成员可以方便地协作开发项目,同时确保项目的每个...

    SVN常用操作命令

    ### SVN常用操作命令详解 #### 1、将文件CHECKOUT到本地目录 - **命令**: `svn checkout <路径>` (其中 `<路径>` 是服务器上的目录) - **示例**: `svn checkout svn://192.168.1.1/pro/domain` - **简写**: `svn co...

    SVN Linux使用(客户端使用篇)

    ### SVN Linux客户端使用详解 #### 一、简介 本文档主要介绍了如何在Linux环境下使用Subversion (SVN)客户端进行版本控制操作。Subversion是一种集中式的版本控制系统,广泛应用于软件开发过程中,帮助开发者管理...

Global site tag (gtag.js) - Google Analytics