- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
设置合并时,TortoiseSvn 客户端有一个很棒的复选框,标记为“隐藏不可合并的修订”。我希望重现使用 SharpSvn 启用时显示的修订列表。
TortoiseSvn documentation解释这个复选框:
When merge tracking is used, the log dialog will show previously merged revisions, and revisions pre-dating the common ancestor point, i.e. before the branch was copied, as greyed out. The Hide non-mergeable revisions checkbox allows you to filter out these revisions completely so you see only the revisions which can be merged.
如何在 SharpSvn 代码中重现此功能? 我需要一个 SvnLogEventArgs(或类似的)列表,它们是合并的候选对象。
当前状态:我只得到了两个分支的日志。我无法弄清楚如何获得适当的 svn:mergeinfo
属性,或者在获得它后如何处理它。
最佳答案
我一直在努力,并点击链接,这就是我最终得到的:
using (var client = new SvnClient())
{
var release = SvnTarget.FromUri(new Uri(@"https://******/branches/Release"));
var trunk = SvnTarget.FromUri(new Uri(@"https://******/trunk"));
string trunkMergeinfo, releaseMergeinfo;
client.GetProperty(release, "svn:mergeinfo", out releaseMergeinfo);
client.GetProperty(trunk, "svn:mergeinfo", out trunkMergeinfo);
var relInfos = releaseMergeinfo.Split("\n");
var trunkInfos = trunkMergeinfo.Split("\n");
// This is here because I don't know what will happen once I merge something into trunk.
Debug.Assert(relInfos.Except(trunkInfos).Count() == 1,"Too many unknown merge paths");
var trunklist = relInfos.SingleOrDefault(i => i.StartsWith("/trunk:"));
var revisions = trunklist.Replace("/trunk:", "").Split(",").SelectMany(t =>
{
// If the log contains a range, break it out to it's specific revisions.
if (t.Contains("-"))
{
var match = Regex.Match(t, @"(\d+)-(\d+)");
var start = int.Parse(match.Groups[1].Value);
var end = int.Parse(match.Groups[2].Value);
return Enumerable.Range(start, end - start + 1).ToArray();
}
else
return new[] { int.Parse(t) };
}).Select(x => (long)x);
Collection<SvnLogEventArgs> baseRevs;
// Why can't this take "trunk" or a property thereof as an argument?
client.GetLog(new Uri(@"https://******/trunk"), new SvnLogArgs { Start = 1725, End = SvnRevisionType.Head }, out baseRevs);
baseRevs.Reverse().Where(r => !revisions.Contains(r.Revision) ).Select(x => x.LogMessage).Dump();
}
希望这对其他人有帮助,尽管我会注意到它没有我在生产代码中放入的大量健全性检查 - 这是快速和肮脏的版本。
关于c# - 使用 SharpSvn 获取 "mergable revisions",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38386103/
举个例子:假设在 svn update 之后我使用的是修订版 10。如果我现在添加一个文件并执行提交,svnversion 将报告我处于混合修订版的状态;即10点11分。但由于这些数字是按顺序排列的,
链接: http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-howto-rollback.html 描述了错误提交后回滚 SVN 目录的两种
在 Android 上制作 cat/proc/cpuinfo 返回这种输出: Processor : ARMv7 Processor rev 1 (v7l) processor
我在一个使用 alembic 管理数据库迁移的团队中工作。我最近拉了master,并尝试运行alembic upgrade heads .我收到以下消息; INFO [alembic.runtime
当我执行 git submodule update --init 时出现错误 fatal: Needed a single revision Unable to find current revisi
我有一个项目,我想在其中自动嵌入修订号。 在这种情况下,它是一个多文件 perl 脚本。在主文件中,我有一行如下所示: 我的 $revision = '$Revision: 24 $'; 当我发布时,
当使用以下代码时: {% with ""|add:revision.width|add:"x"|revision.height as dimensions %} {% thumbnail revi
我的幻灯片是这样说的: 递归调用应该总是在比当前调用更小的数据结构上 如果数据结构太小,必须有非递归的选项 您需要一个包装器方法来使递归方法可访问 仅从幻灯片中阅读此内容毫无意义,尤其是考虑到这是圣诞
归并排序的工作方式是: 获取值列表 一分为二 取每个列表的第一个元素,最小值进入一个新列表(我想从原来的列表中删除)。比较接下来的两个数字 - 这样做直到一个列表为空,然后将另一个列表的其余部分放在
我目前正在制作一个脚本,在其中我已经熟悉 Tortoise SVN 及其相应的命令行功能。 我正确更新了脚本,以通过一系列测试找到正确构建的“修订版”。在脚本记录该变量(特定于版本号的)之后,我更新到
我一直在使用 git subtree split 将一个巨大的存储库(从另一个 VCS 导入到 Git)划分为较小的存储库。 $ git subtree split -P ./path/to/fold
我想用c#读/写窗口信息文件(扩展文件属性) 通过执行以下操作找到的:在窗口资源管理器中右键单击 => 属性 => 摘要选项卡。我主要想访问属性: 职位 类别 修订号 对于办公文档,我可以使用以下(使
如何导出/获取属于修订版的所有文件? 例如: 在修订版 5434 上,如果我们提交了 5 个文件,如何获取指定修订版的所有 5 个文件? 类似 svn export有修订号,但我 只有想要我在该修订版
我们曾经有一个用于多个项目的共享SVN存储库,昨天,我们的SVN管理员创建了一个特定于我们项目的新SVN存储库。 我将项目的现有 checkout 位置重新定位到了新的SVN存储库,但是现在,当我进行
我的仓库有 3 次提交。我想挤成一个。 我运行 git rebase -i HEAD~3 并得到这个错误: fatal: Needed a single revision invalid upstre
我们将 svn:externals 用于库的特定修订,例如像 xyzlib -r12345 https://asdf.asdf.local/xyzlib/trunk/ 当您在工作副本中对此类 chec
我希望将韩文地名罗马化。函数 stringi::stri_trans_general 支持韩文罗马化,但显然不符合广泛应用和官方的 Revised Romanization of Korean 方案。
当人们在OCaml中引用“修订的语法”时,他们是说这将成为该语言的新语法,还是只是在CamlP4中创建的替代语法?如果是前者,那么“修订语法”何时会成为OCaml的“官方语法”? 最佳答案 修改后的语
我有一种情况: 开发人员正在从事 SVN 项目。 人检查 SVN 项目,走开, child /猫/妻子坐下/dools/sleepwalks/任何在计算机上并插入 gobbledygook asdfg
这里只是一个小的SVN“问题”。 我设置了自己的 SVN 服务器 Setting up Subversion on Windows 现在我做了一个代表,我所有的项目都将参与其中。 现在,我在名为“Pr
我是一名优秀的程序员,十分优秀!