gpt4 book ai didi

svn - 如何使用 SharpSVN(快速)检查服务器上是否存在远程文件夹/文件

转载 作者:行者123 更新时间:2023-12-04 16:41:37 24 4
gpt4 key购买 nike

假设我在 https://www.mysvn.com/svn/ 有一个 svn 存储库.我如何使用 SharpSVN 确定远程文件夹 https://www.mysvn.com/svn/a/b/c服务器上存在吗?

我需要用一种方法来区分失败的连接(即服务器关闭)和尚未创建的文件夹之间的区别。

完整的电话信息https://www.mysvn.com/svn/a/b/c path 似乎没有给出一个异常(exception),使我能够区分根本没有存储库和只是缺少文件夹之间的区别。

我可以列出 https://www.mysvn.com/svn/ 的所有文件但是存储库很容易变得太大以至于这可能需要很长时间。

现在我首先在根 url 上做信息,然后在完整 url 上做信息。如果根 url 失败,我将其视为服务器问题,但如果它成功并且完整 url 失败,我认为它是因为尚未在服务器上创建部分路径。但是,如果在两次检查或类似检查之间互联网连接丢失,这可能会给出错误的答案。

最佳答案

是否可以使用 GetInfo 并将 SvnInfoArgs.ThrowOnError 设置为 false。

使用 SharpSVN 语法:

    using (SvnClient sc = new SvnClient())
{
Uri targetUri = new Uri(RemoteUriTrunk, relPath);
var target = SvnTarget.FromUri(targetUri);
Collection<SvnInfoEventArgs> info;
bool result = sc.GetInfo(target, new SvnInfoArgs {ThrowOnError = false}, out info);
Assert.That(result, Is.False);
Assert.That(info, Is.Empty);
}

这假设抛出的所有异常都意味着远程文件不存在。

也许 SvnRemoteSession.GetStat 是解决这个问题的更好方法。 I 似乎是一个相当新的功能。我的库版本中没有它。
http://sharpsvn.open.collab.net/source/browse/sharpsvn/trunk/src/SharpSvn/SvnRemoteSession.h?view=log

令人非常恼火的是,该库会根据它是哪种类型的存储库抛出不同的异常。

关于svn - 如何使用 SharpSVN(快速)检查服务器上是否存在远程文件夹/文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2403506/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com