SharpSvn - 如何在没有工作副本的情况下保存 MemoryStream 中的更改

发布于 2024-10-11 07:58:30 字数 410 浏览 6 评论 0原文

我有这段代码,它将 uri 的内容获取到 MemorySream 中:

MemoryStream ms = new MemoryStream();
SvnTarget target = new SvnUriTarget(new Uri(webConfigUri));
client.Write(target, ms);
string webConfigText = Encoding.ASCII.GetString(bms.ToArray());
webConfigText = webConfigText.Replace(oldLine, newLine);

这有效。

问题:我现在如何保存所做的更改(在 webConfigText 中)?

谢谢,我目前正在抓狂。 D

I have this code which gets a uri's content into a MemorySream:

MemoryStream ms = new MemoryStream();
SvnTarget target = new SvnUriTarget(new Uri(webConfigUri));
client.Write(target, ms);
string webConfigText = Encoding.ASCII.GetString(bms.ToArray());
webConfigText = webConfigText.Replace(oldLine, newLine);

This works.

Question: How do I now save the changes (in webConfigText) I've made?

Thanks, I'm currently tearing my hair out.
D

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

重新阅读这个问题,似乎您想将更改提交回存储库。如果没有工作副本,您将无法执行此操作。如果您确实只想这样做,请在临时目录中创建一个工作副本,然后将其删除。

var client = new SvnClient();   
string workingCopy = Path.Combine(Path.GetTempDir(), "workingcopy";
client.CheckOut(new Uri(reposUri), workingCopy);

// modify the file(s)
client.Commit(workingCopy, new SvnCommitArgs { LogMessage = "Automatic commit" });

Re-reading this question, it seems like you want to commit the changes back to the repository. You can't do this without a working copy. If you really want to only do this, create a working copy in the temp dir, and delete it afterwards.

var client = new SvnClient();   
string workingCopy = Path.Combine(Path.GetTempDir(), "workingcopy";
client.CheckOut(new Uri(reposUri), workingCopy);

// modify the file(s)
client.Commit(workingCopy, new SvnCommitArgs { LogMessage = "Automatic commit" });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文