1

我使用 RapidSVN 作为 svn 客户端并设置 svn:keywords 我必须转到每个文件,右键单击 > Properties > New > Name = svn:keywords > Value = Id > OK

这还不是问题,因为该项目没有很多文件,但我无法使其正常工作。当我将新版本提交到我的 GoogleCode 存储库时,我的本地文件会更改 Id 值,但它不会发生在远程 GoogleCode 存储库中。当我看到远程文件的内容时,ID 没有改变。

谁能告诉我为什么?

4

2 回答 2

0

你必须准确地解释你是如何做到这一点的。

与其他 RCS 和可能的 CVS 不同,Subversion 不会自动扩展关键字。使用关键字有两个部分:

  1. 将文件中的属性设置为svn:keywords要扩展的关键字。这些仅限于:
    • 网址
    • 作者
    • 日期
    • ID
    • 修订
  2. 将关键字放在由美元符号包围的文件中。

像这样:

$Author$

这将扩展为:

$Author: dweintaub$

你在做这一切吗?

关键字扩展的整个想法现在被认为是一个过时的概念,并不是一个好主意。只要您的代码在 Subversion 中,您就可以在不进行关键字扩展的情况下获得所有这些(以及更多)。

很多时候,这被用来查看编译时使用了哪些版本的软件。但是,如果您正在编译代码,则有更好的嵌入修订数据的方法。例如,您可能正在使用创建构建号的构建系统。更好的做法是在编译时将内部版本号简单地嵌入到单个文件中,这样您就可以在About Box中查看它。

所以,如果你真的不能让它工作,那也不是那么糟糕。它使您免于不再被认为是 CM 的好主意的做法。

于 2012-11-04T16:28:19.253 回答
0

当我将新版本提交到我的 GoogleCode 存储库时,我的本地文件会更改 Id 值,但它不会发生在远程 GoogleCode 存储库中

只是不要担心和忘记,如果在客户端你得到预期的结果:扩展关键字。一些服务器端回购浏览器使用“公平”的方法来访问数据(作为 svn-client),一些 - 不是。因为 SVN-keywords仅在 client中展开,而不是直接在 repository-data 中展开,所以您可以在服务器视图中看到关键字而不是 real-data,但这没有意义:比较Repo-Browser 中 File的输出(前 3 行)和 real输出给任何用户

svn cat https://subversion.assembla.com/svn/customlocations-greylink/trunk/Local/Local.ini
// $Revision: 991 $
// $Date: 2010-08-18 21:22:02 +0600 (╨б╤А, 18 ╨░╨▓╨│ 2010) $
// $Author: Infinity_Love $
...
于 2012-11-04T22:09:35.893 回答