regex 如何过滤tortoisehg(Mercurial)以不显示包含字符串一部分的分支?

whhtz7ly  于 2022-12-24  发布在  其他
关注(0)|答案(1)|浏览(107)

我们的Mercurial/HG存储库有相当数量的wip特性分支,我希望能够创建一个更干净的视图,并过滤掉任何包含字符串一部分的分支。
我知道我可以指定要显示哪些分支,但我更希望能够设置排除的搜索字符串,因为所有这些分支都包含类似feature_xx的内容
一长串的东西:not branch_contains("feature"),可能使用regex?从历史/层次结构视图中单独隐藏它们也是一个不错的解决方案。
我该如何在TortoiseHG中执行此操作?

ru9i0ody

ru9i0ody1#

前言

你要明白:Mercurial本身和TortoiseHG是 * 略有不同 * 的产品,由于性质不同,它们有自己的界面(CLI与GUI)和工具集
"脸"
如果只想在Workbench主窗口(右上角区域)中隐藏部分子树,可以激活Filter Toolbar(过滤器工具栏)(View-Filter ToolbarCtrl+S

并应用(以前在纯CLI中测试过或就地编写和调试)revset(hg help revsets)以隐藏不需要的分支(即branch(string or set) revset和operator not x
注1:在新会话中重新启动THG后,此处输入的revset不会自动恢复过滤,您必须手动恢复
注2:重新启动THG后,所有和任何使用的revset不会消失,而是存储在工具栏的历史记录中(直到手动删除),稍后可以轻松恢复
对于您的用例“所有分支,分支名称中没有feature_”,我在revset中使用了(最简单的)regexp,如下所示

! branch('re:(?i)feature_')
  • !(不)从查看选定修订中 * 排除 *
  • re:,用于使用regexp匹配命名中具有通用模式的所有分支
  • (?i)对区分大小写的 predicate 执行区分大小写的匹配(匹配“feature_"、“FEATURE_"、“Feature_”甚至“FeAtUrE_”)

附言:只是一个样品。在测试过程中,用这样的过滤器

分支表回购

hg branches
1.0.x                       2193:20739d2244a1
default                     2190:efadd9becb86
0.10.x                      2118:4a18ab4b2fed (inactive)

我不仅从视图中删除了现有的release-branches 0.10.x + 1.0.x,还删除了所有未来的版本,它们将遵循相同的命名模式(尾随“0.x”)

相关问题