如何在不提交任何文件的情况下向SVN添加日志消息?

时间:2011-06-01 14:55:48

标签: svn

是否可以在不提交文件的情况下向SVN添加新的日志消息?

如果没有,您会建议哪些解决方法,例如:提交一个单字节的隐藏文件?

4 个答案:

答案 0 :(得分:11)

您可以考虑更改目录的元数据(也称为属性),而不是更改和提交实际的虚拟文件。这种类型的元数据是由SVN跟踪的,因此即使任何文件都没有变化,也可以触发提交。

例如,只需在根目录中创建/更改属性并执行提交。通过这样做,用户将不会在源中看到任何无意义的虚拟文件,也不会看到虚拟文件的无意义文件更改条目。

e.g。

> svn propset LOG_FOR_MESSAGE `date` .
> svn commit -m 'a commit without any file change'

答案 1 :(得分:1)

您可以使用svnmucc来创建空提交。只需告诉它删除根路径上不存在的属性。根目录最终会显示为已修改,但不会有任何实际更改。

$ svnadmin create repo

$ svnmucc -m "commit message" -U file://`pwd`/repo propdel nosuchproperty /
r1 committed by breser at 2013-08-21T03:34:00.270416Z

$ svn log -v --diff file://`pwd`/repo
------------------------------------------------------------------------
r1 | breser | 2013-08-20 20:34:00 -0700 (Tue, 20 Aug 2013) | 1 line
Changed paths:
   M /

commit message


------------------------------------------------------------------------

答案 2 :(得分:1)

我不确定目的。为什么我不想在没有单个文件更改的情况下看到几十个日志条目?

您想要存储库的最新状态吗?您可以使用修订版属性。您可以在不提交任何文件的情况下更改修订版属性,并且该修订版属性将附加到修订版。您已熟悉的三个特殊内容:svn:logsvn:datesvn:author。这些是提交消息,提交日期和更改的作者。执行svn log时看到的内容。

但是,您可以创建自己的属性,只需在不提交的情况下更改它们:

 $ svn ps site:status --rev-prop -rHEAD "Sunny" $REPO_URL

唯一的问题是您必须创建一个修订属性更改挂钩,以允许您更改修订版属性。

答案 3 :(得分:0)

基本上,我找到了一种解决方法,您可以修改一个1字节的文件并使用日志消息提交它。虽然这显然是一种解决方法,但似乎没有其他方法可以让SVN将日志添加到未更改的文件中。我可能错了。 需要说明的是,如果您使用自定义SVN客户端,但我需要使用标准命令行客户端。