Subversion 签出在“.svn”树下产生大量文件。有没有办法在结帐过程中过滤掉“.svn”文件?
谢谢,
森
见svn export
。它应该有帮助。
第一种形式从由 URL 指定的存储库中导出一个干净的目录树,如果给出,则在修订版 REV,否则在 HEAD,到 PATH。如果省略 PATH,则 URL 的最后一个组成部分用于本地目录名称。
正如 yodaj007 所说,这将从修订版中提取所有文件,并且该目录将不是修订版控制的目录。要获得修订控制目录,您可以使用通常的svn co
.
我知道这是一篇迟到的帖子,但是如果您不想将 .svn 文件存储在您的目录中,因为您想将其压缩或将其交给没有这些文件的其他人,请使用此 perl 脚本删除.svn 文件。请注意,通过使用它,您将无法使用 svn commit 提交回存储库,因为您删除了 .svn 文件。
#!/usr/bin/perl
use File::Path;
use strict;
# Only run program on valid input MAX/MIN_INPUT = 1
if ( @ARGV == 1 ) {
my $file = $ARGV[0];
#Do some regular expression verrification
&dot_svn_del_func ( $ARGV[0] );
} else {
die "ERROR: to many arguments passed";
}
sub dot_svn_del_func {
my $path = shift;
opendir (DIR, $path) or die "Unable to open $path: $!";
my @files = grep { !/^\.{1,2}$/ } readdir (DIR);
closedir (DIR);
@files = map { $path . '/' . $_ } @files;
for (@files) {
if (-d $_) {
my $svn_found = 0;
my $path = $_;
my @path_components = split(/\//,$path);
my $path_count = 0;
foreach my $new_path (@path_components) {
if ( $new_path eq ".svn" ) {
rmtree($_,1,1);
$svn_found = 1;
}
$path_count++;
}
if ( $svn_found == 0 ) {
#print "Making recursive calls from ".$_."\n";
&dot_svn_del_func ( $_ );
}
}
}
}