- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找一种比 .NET 中的 svn cat 更快的从 SVN 检索文件的方法。
目前我正在为每个修订版运行一个 svn cat 进程,但速度非常慢。
然后我尝试使用 SvnClient:
Stream st = Console.OpenStandardOutput();
SvnWriteArgs wargs = new SvnWriteArgs();
for (int i = 3140; i < 3155; ++i)
{
wargs.Revision = i;
client.Write(new SvnUriTarget("http://filezilla.svn.sourceforge.net/svnroot/filezilla/FileZilla3/trunk/README"), st, wargs);
}
st.Flush();
但每次迭代甚至比 svn cat 还要慢。
SvnClient 中是否有一种方法可以“重用”先前打开的与 SVN 服务器的连接,以便可以更快地运行多猫操作?
最佳答案
您可以使用 FileVersions 命令来执行此操作。这将获取一个完整的文件,并使用单个连接中每个版本之间的差异来获取所有其他文件。这应该会带来不错的性能提升。
public void WriteRevisions(SvnTarget target, SvnRevision from, SvnRevision to)
{
using(SvnClient client = new SvnClient())
{
SvnFileVersionsArgs ea = new SvnFileVersionsArgs
{
Start = from,
End = to
};
client.FileVersions(target, ea,
delegate(object sender2, SvnFileVersionEventArgs e)
{
Debug.WriteLine(e.Revision);
e2.WriteTo(...);
});
}
}
这需要支持此功能的服务器。我不太确定它是什么时候引入的,但是运行 SvnBridge 的 Codeplex 不支持它。如果我没记错的话,在这种情况下,委托(delegate)只会被调用一次,在这种情况下,您将不得不恢复到第一个解决方案。正常情况下,在 Start 和 End 之间的每次修订都会调用委托(delegate)。
参见 this testcase 中的 WalkMe 方法(和其他方法)查看有关其使用的更多详细信息(用户名 guest,无密码)。
关于.net - 使用 SvnClient 实现更快的 svn cat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/829220/
我似乎找不到通过 C# SvnClient 获取用户名的方法。 在命令行中,您可以在命令提示符中键入“svn auth”,它会在那里显示用户名。 但是,在C# SvnClient API 中就没那么简
我正在寻找一种比 .NET 中的 svn cat 更快的从 SVN 检索文件的方法。 目前我正在为每个修订版运行一个 svn cat 进程,但速度非常慢。 然后我尝试使用 SvnClient:
我正在使用 Export() 成员函数来获取特定修订版本的文件,该版本有效,但由于某些原因在其他情况下无效。对于所有修改后的路径,它似乎都在工作,但是对于该修订版中删除的和有时添加的文件,我得到一个异
在我发现的 SharpSvn 文档中 ( here ),SvnClient.getinfo 的返回值(boolean 类型)丢失了。有人可以帮忙吗?谢谢。 最佳答案 这是我得到的答案: Usually
我已经使用 SharpSVN 编写了一个简单的 C# 应用程序,以便在尝试添加之前查询文件的状态。为此,我在不同地方看到的示例涉及调用 SvnClient 的 GetStatus 方法,将完整路径和输
鉴于两个不同的修订需要获得它们之间的差异,我打算使用 duvuelve Diff 方法,但结果是什么,这可能是什么?谢谢。我的代码如下 using (SvnClient client = new Sv
我是一名优秀的程序员,十分优秀!