Как отфильтровать файлы .svn во время оформления заказа? - PullRequest
2 голосов
/ 18 декабря 2010

Извлечения Subversion создают большое количество файлов под деревьями .svn. Есть ли способ отфильтровать файлы .svn во время оформления заказа?

Спасибо
Sen

Ответы [ 2 ]

7 голосов
/ 18 декабря 2010

См. svn export.Это должно помочь.

Первая форма экспортирует чистый каталогдерево из хранилища, указанного URL, при ревизии REV, если оно задано, иначе в HEAD, в PATH.Если PATH опущен, последний компонент URL используется для имени локального каталога.

Как говорит yodaj007, это извлечет все файлы из ревизии, и каталог не будет управляемым ревизией.Чтобы получить контролируемый ревизиями каталог, вы используете обычный svn co.

2 голосов
/ 10 мая 2011

Я знаю, что это поздний пост, но если вы не хотите, чтобы файлы .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 ( $_ );
            }
        }
   }

}

...