在Perl subversion绑定中,如何确定目录是否在工作副本中

时间:2015-01-15 15:12:10

标签: perl svn

我正在使用perl Subversion绑定(SVN :: Client等)。如果我有一个目录路径,我如何确定该路径是否是工作副本的一部分 - 它必须很快。

在svn 1.7之前,可以检查路径/ .svn目录,但很明显,在svn 1.7中没有一个更高级别的.svn目录。我不能只为.svn向上递送目录,因为在远程工作副本下的非跟踪目录中会失败。

$SVN::Error::handler = undef;
$client->status2($path, undef, sub {
    my ($path,$wc_status2) = @_;
    if ($wc_status2->entry()) { it exists }

似乎很接近,但是如果路径在工作副本之外,则返回错误(我抑制),并且基准测试相当慢。我怀疑我的阅读中缺少一些基本功能。非常感谢。

1 个答案:

答案 0 :(得分:0)

我不熟悉SVN :: Client,但svn info给出了Working Copy Root Path。也许可以使用SVN :: Client :: info访问它。实际上,如果您只对目录是否在Subversion控件下感兴趣,svn info输出可能就足够了。