关于SVN和检查存储库有一个(希望很小的)问题。基本上,我看到有关检查什么以及何时检查的教程和建议。有人会说:

Svn Co http://my.repos.com/project 我的项目

…而其他人说:

Svn Co http://my.repos.com/project/trunk 我的项目

我什么时候要直接抓住整个项目的行李箱?过去,我从来没有遇到过任何麻烦,但是我不确定是否有一个比另一种可取的场景。

最好的。

有帮助吗?

解决方案

关于这一点还有其他几点要注意。

  1. tags 树(通常是树)在特定时间点中包含代码的假设不变快照;这不是您要更改的内容,因为大多数部署将基于标签
  2. 大多数颠覆客户都会抱怨,如果您尝试在 tags 树,而不仅仅是复制
  3. 出于大多数目的, trunk 是目录下的特殊情况 branches;唯一的重大区别是,它有望包含主要开发路径

正如其他人所指出的那样,通常没有充分的理由检查整个项目,因为大多数时候您只在行李箱和一个或两个分支上工作,整个项目可以吃大量的磁盘空间。主要开发“分支”通常是您唯一需要的东西。

这是一个现实世界的示例。我们的团队对行李箱进行了所有代码更改。当我们需要Alpha(预完成)版本时,我们只会标记行李箱。在给定版本中点击“代码完成”后,我们将创建一个代码冻结分支,在其中进行所有版本更改。 Beta,RC和GA版本是从该分支标记的。如果我们需要修补GA释放,则将对分支进行补丁并合并到中继线。这样,如果我们需要修补特定的内容,我们就不必担心将较新的代码泄漏到已测试和批准的GA中。它还使我们能够在冻结代码后立即开始处理该软件的下一个版本。

另外,如果有一个“侧面项目”,则可以为中继线提供带外,您可以为此创建一个分支,并在准备就绪时合并它。

有些团队喜欢为每个错误创建一个分支,有些团队直接在行李箱上工作(例如我的)。如果您的团队进行分支错误,我将永远不会检查整个项目。除其他外,我会看到很多我不在乎的代码。

另外,关于存储库管理的一点 @humble_coder - 大多数颠覆工具在分支/标签管理方面都很容易使用。例如,TortoisesVN具有一个存储库浏览器,可让您轻松地复制周围的内容(创建分支和标签),甚至SVN命令行工具也可以用来做与原子操作相同的事情(我们实际上有一个脚本这会创建alpha标签,代码冻结分支或冻结后发布标签)。

希望这可以帮助!

其他提示

通常,颠覆存储库有3个主要目录:

  1. 分支
  2. 标签
  3. 树干

TRUNK是代码的最新分支。

通常创建分支机构,以开发您尚未在中继线中想要的特定功能。

标签就像行李箱的保存点。

如果您在项目的根部进行结帐,则将获得所有分支,所有标签和中继线。这可能导致大量数据。

例如,如果标记每个代码版本,您将从过去的所有版本中获取源代码!

我希望这能帮到您

杰罗姆·瓦格纳(Jerome Wagner)

这取决于您如何布置存储库,但是通常,您将拥有此结构:

/trunk
/tags
/branches

内部 tagsbranches, ,您可能有几个项目的副本(再次取决于如何使用存储库)。

如果您的存储库是以这种方式布置的,并且您可以结帐 /, ,您最终将获得代码(标签和分支)的几个副本,您可能不应该触摸(例如,标签)。

如果您结帐 /trunk 取而代之的是,您只需查看您当前正在处理的版本,这就是您通常想要的。

我永远不会结帐整个项目。通常,我一次只对一个分支感兴趣,大概两个,偶尔三个。我总是检查并更新。如果我需要检查已发布的标签的操作(也许是为了进行错误调查),我会检查并进行调查并删除。存储在下面的分支 branches 通常,注意跨度要短得多,也就是说,它们在短时间内发烧并发烧,然后再也没有碰到。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top