合并会始终更新文件的修订号吗?

Will a merge always update the revision number of a file?

假设我正在将 branch-alpha 中的目录合并到 trunk 中。 branch-alpha 中有一个名为 phi.txt 的新文件将被合并到主干中。 phi.txt的改版会改变吗?

我感觉到 terminological/conceptual 问题 ;-)

在 Subversion 中,文件没有修订号(与 CVS 相对)。 修订号是提交的 属性。

但是,任何给定文件在特定修订版中可能存在或不存在,并且在其中具有特定状态。

比如说,给定一系列修订…→@10@11@12…,某个文件可能在第 @11 次修订中被更改,但是您仍然可以使用这些修订号中的任何一个来引用该文件的内容,仅通过 @10 引用该文件将给出 "old" 内容,通过 @11@12 将给出 "new"(和相同的)内容——也就是说,直到将来的某个修订版,@N 将再次更改该文件。 然后通过一些过去的修订引用它 @P P@11,并使用未来的修订号 @F F>N 将引用其在 @N 中记录的内容。

现在直接回答问题:

  • 文件的 内容 可能会更改,当且仅当它会被该合并更新时。
  • 合并肯定会创建一个新的修订版,但这将是存储库范围内的修订版,而不是该特定文件(或存储库中的任何其他文件)的修订版。
  • 合并后,如果文件的内容被更新,通过合并提交的修订号引用它将会引用更新后的文件内容,并且使用紧接在合并之前的修订号来引用它commit 将引用文件的 "previous" 内容。

以防万一您不知道,您可以使用 path/to/the/file@rev 来参考在特定修订版中找到的特定文件的状态,就像在 app/js/foo.js@12345.

中一样

现在清楚了吗?