-1

我正在尝试为我遇到的另一个问题汇总一个测试用例,为此我想模仿一个带有 svn:ignore 目录的 svn 存储库。设置该值时,该值中指定的目录会从版本控制中排除吗?对?

下面概述了我所做的事情。我得到的结果。我有点迷茫,希望这里有人可以帮助我。

[/tmp]$svn --version
svn, version 1.6.15 (r1038135)
  compiled Nov 29 2010, 16:11:54

[/tmp]$mkdir svnadmin
[/tmp]$cd svnadmin/
[/tmp/svnadmin]$svnadmin create ignoretest
[/tmp/svnadmin]$mkdir ../client
[/tmp/svnadmin]$cd ../client
[/tmp/client]$svn co file:///tmp/svnadmin/ignoretest
Checked out revision 0.
[/tmp/client]$cd ignoretest/
[/tmp/client/ignoretest]$svn propset svn:ignore private .
property 'svn:ignore' set on '.'
[/tmp/client/ignoretest]$svn propget svn:ignore
private

[/tmp/client/ignoretest]$svn ci -m "ignore set"
Sending        .

不确定我是否必须在这里提交,在我的理解中 svn:ignore 是一个全局公认的参数设置它在这里意味着它是为中央存储库设置的?

Committed revision 1.
[/tmp/client/ignoretest]$mkdir private
[/tmp/client/ignoretest]$echo 'secret' > private/file1.txt
[/tmp/client/ignoretest]$svn add *
A         private
A         private/file1.txt
[/tmp/client/ignoretest]$svn ci -m "something wrong?"
Adding         private
Adding         private/file1.txt
Transmitting file data .
Committed revision 2.

这确实引起了我的注意

[/tmp/client/ignoretest]$mkdir ../../client2
[/tmp/client/ignoretest]$cd ../../client2
[/tmp/client2]$svn co file:///tmp/svnadmin/ignoretest
A    ignoretest/private
A    ignoretest/private/file1.txt

真的签到了。

 U   ignoretest
Checked out revision 2.
4

2 回答 2

1

设置忽略属性实际上并不会阻止您将文件添加到存储库。当您运行“svn status”时,它只是阻止 svn 报告这些文件名。

如果您在设置忽略属性后运行“svn status”,您会注意到“private”没有显示。但是,没有什么可以阻止您显式添加和提交它,就像您使用“svn add *”所做的那样。

于 2011-06-07T20:20:11.840 回答
1

我认为你的使用svn add *是给你意想不到的结果。shell 通常将 扩展*至所有文件,并将包括被忽略的文件。实际上, svn:ignore 被忽略了。我认为你最好使用svn add –force .

于 2011-06-07T20:20:25.220 回答