9

虽然我正在尝试学习如何使用svn:externals,但我很难理解这些术语的区别。它们有何不同?

  • 工作副本结帐

    有时,构建一个由多个不同结帐组成的工作副本很有用。(来源

  • 财产

    在 Subversion 中,您使用 svn:externals属性在组中声明外部定义。(来源

  • 存储库

    因此,分支和标签的创建速度非常快,并且几乎不占用存储库中的额外空间。(来源

    例如,您可能希望不同的文件或子目录来自存储库中的不同位置,或者可能完全来自不同的存储库。(来源

  • 项目

    为项目中的文件夹设置 svn:externals 属性。(来源

我猜工作副本是一组项目文件,而结帐是项目文件或主干文件的工作副本。属性听起来像一个文件,但它可能是一个定义指令,但我不确定。我也很难理解存储库和主干之间的区别。如果我说“用户下载存储库。”,它类似于说“用户下载主干文件”。

抱歉,这一定是一道非常基础的英语问题!

4

3 回答 3

6
  • 工作副本(名词)- 目录树,其中包含一些存储库切片
  • 结帐(动词)- 将初始内容从存储库获取到文件夹的操作,之后成为工作副本
  • 属性(名词) - 存储库对象的属性
  • 存储库(名词)- 版本化数据和相关元数据的存储,与客户端交互
  • 项目(名词)-(在引用的上下文中)WC和相关repo(ORed)的组合,可能具有WCs-set的含义,形成完整的产品

存储库是逻辑树,树干是这棵树的一部分

于 2012-10-11T05:16:07.717 回答
3

这些是从一开始就应该明确的关键 Subversion 概念。使用 Subversion的官方版本控制一书中有一个版本控制基础章节,其中包含一个简要概述,但我将在这里用我自己的话来解释它们:

主要概念

存储库

它是存储所有重要数据(包括文件和版本历史)的中央数据库。

您不直接与存储库文件交互,就像您不编辑 MySQL 数据文件一样。更具体地说,您不会在那里复制源代码。相反,您使用 Subversion 客户端来执行特定的 Subversion 工作。出于这个原因,您永远不会通过其文件系统路径来引用存储库。相反,您使用 URI:

  • file:///C:/Data/Subversion/foo
  • svn://svn.example.com/foo
  • http://svn.example.com/foo
  • https://svn.example.com/foo

URI 前缀取决于您配置的工具。

您只有一个给定项目的存储库,因为 Subversion 是一个集中的版本控制系统。

工作副本

它是本地目录树,您可以在其中查看文件并使用它们。

您可以像使用版本控制之前一样使用工作副本文件:启动编辑器/IDE、进行更改、编译/运行。唯一的区别是您的文件链接到存储库中的特定修订。因此,您需要采取一些额外的步骤:

  1. 您必须创建一次工作副本,以便将其链接到适当的存储库。这叫做签出

  2. 您必须将更改发送到存储库,以便将它们保存在公共历史记录中并可供其他人使用:这称为commit

  3. 您可能想要获取其他同事所做的任何更改:这称为update

您通过文件系统路径引用工作副本:

  • C:\MyProjects\Foo\code

您可以根据需要拥有任意数量的工作副本,即使它们指向同一个地方。


其他概念

树干

它是一个包含您的代码副本的子目录,您已经决定它代表您的主要开发线。例如:

  • /trunk

这只是一个约定(该目录不是 Subversion 的特殊目录),但被推荐并广泛使用。

分支

它是一个包含代码副本的子目录,并且您已决定它代表代码中的一个分支(未完成的任务、自定义、您仍然维护的旧版本......)。例如:

  • /branches/unicode

这只是一个约定(该目录不是 Subversion 的特殊目录),但被推荐并广泛使用。

标签

它是一个包含代码副本的子目录,并且您已经确定它代表给定版本。你永远不会给它写信。例如:

  • /tags/2.0.0-alpha

这只是一个约定(该目录不是 Subversion 的特殊目录),但被推荐并广泛使用。

财产

Subversion 允许存储有关修订、文件和文件夹的附加信息。每条数据都是一个属性。该信息特定于 Subversion,不存在于外部,因此您需要特定的工具来读取和写入它们。

项目

不是 Subversion 术语。这只是一种常见的方式来引用与您正在做的特定工作相关的所有内容。

于 2014-02-05T16:50:01.163 回答
1

我发布了一些我自己在网上找到的描述。

存储库

版本控制系统的核心是存储库,它是该系统数据的中央存储。存储库通常以文件系统树的形式存储信息——文件和目录的层次结构。任意数量的客户端连接到存储库,然后读取或写入这些文件。

http://svnbook.red-bean.com/en/1.7/svn.basic.version-control-basics.html

工作副本

从字面上看,工作副本是用户可以自由工作的用户 VCS 管理数据的特定版本的本地副本。工作副本对其他软件来说就像任何其他充满文件的本地目录一样,因此这些程序不必“具有版本控制意识”即可读取和写入该数据。

http://svnbook.red-bean.com/en/1.7/svn.basic.version-control-basics.html

查看

...checkout 创建一个工作副本,而 update 会降低对现有工作副本的更改。通过karoberts

...结帐包括 .svn 目录,因此它是一个工作副本,并且将具有适当的信息来进行提交(如果您有权限)。作者:notbenh

svn checkout 允许您在Gerald Kaszuba制作的目录中使用版本控制

于 2012-10-12T03:06:58.867 回答