2
我正在使用perl Subversion綁定(SVN :: Client等)。如果我有一個目錄路徑,如何確定該路徑是否是工作副本的一部分 - 它必須很快。在Perl subversion綁定中,我如何確定目錄是否在工作副本中
在svn 1.7之前,可以檢查path/.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 }
似乎接近,但如果路徑是一個工作拷貝外,和基準比較慢這將返回一個錯誤(我壓抑)。我懷疑我的閱讀中缺少一些基本功能。非常感謝。
無論如何,簡單地檢查'.svn'目錄並不是一個很好的測試,因爲除SVN之外的其他東西可以輕鬆地執行'mkdir .svn'。我會使用'status'而不是'status2',因爲在檢查外部數據時沒有意義。確保在檢查第一個路徑後,立即將'$ recursive','$ get_all'和'$ update'設置爲'0',並且'status_func'子例程立即返回''。你也可以試試'url_from_path'方法,但我不知道它是否會更快。 – ThisSuitIsBlackNot 2015-01-15 19:07:28