2011-06-07 77 views
-1

我想拉出一个测试用例来解决另一个问题,为此我想用svn:ignore来模拟一个svn仓库。 设置了该值后,该值中指定的目录是否从版本控制1中排除?对?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:忽略的全球公认的参数设置在这里就意味着它被设置为中央存储库?

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. 

回答

1

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

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

+0

我觉得很难相信,难道你不是全球忽视?从svn-redbook:svn:ignore svn:ignore属性包含某些Subversion操作将忽略的文件模式列表。也许是最常用的特殊属性,它可以与全局忽略运行时配置选项(请参阅“配置”一节)配合使用,从命令svn status,svn add和svn import中过滤未受版本控制的文件和目录。 – 2011-06-07 20:33:28

+0

请参阅本页底部的注释:http://svnbook.red-bean.com/en/1.5/svn.advanced.props.special.ignore.html – Mike 2011-06-07 20:57:30

1

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

+0

但是有没有一种方法可以真正保留目录或文件不管'\ *'如何,回购回购?将prop私人/ \ *。比比赛更好? – 2011-06-07 20:37:38

+0

@dr jerry - '*'的shell扩展与SVN无关,因此也不知道'svn:ignore'。这就是为什么我建议你使用'svn add -force .'。否则,使用像TortoiseSVN这使得这更直观,也保护你添加你不真正需要的文件夹。 – manojlds 2011-06-07 22:20:31