【问题标题】:Mercurial Update To Activate BookmarkMercurial 更新以激活书签
【发布时间】:2015-10-22 17:06:42
【问题描述】:

如果我update 到该修订版,我想激活该修订版上的书签。例如,如果我这样做

hg up -r "bookmark('re:fix.+2572')"

这会将我更新到书签指向的修订版,但不会激活书签。

文档说:

请注意,在不使用书签名称的情况下更新到具有书签的修订版将不会激活书签(例如,如果功能书签指向修订版 #20 并且您执行 hg update --rev 20 功能书签将不会被激活)。

但对我来说,这似乎是一个非常好的功能/选项。如果在 TortoiseHg UI 中更有效,但我无法弄清楚如何在 Mercurial 的命令行版本中执行此操作。

有没有办法/解决方法呢?

【问题讨论】:

  • 获取hg up之前的书签全名?
  • 嗯,是的。但是,我想要的是,如果修订只有一个书签,那么如果我更新到该修订,则激活该书签。书签名称可能非常长。
  • 不想要 strange - hg up -r REVhg up BOOK 的行为不同,这是好的和正确的 - 我只想在我想要的时候激活 boomark。书签名称很长 - 好的,不要使用 fu** looong 名称(更改愚蠢的政策)或:use brain 类似 hg up 'hg log -r "bookmark('re:fix.+2572')" -T "{bookmarks}"'
  • 好吧,我必须与多个团队和开发人员合作,其中 99% 使用 git(没关系)。执行短分支/书签似乎比编写 Mercurial 扩展更难完成。所以我想这个问题可能会有所不同。 Mercurial 有我喜欢的revsets,我希望将其中的一些功能应用于查找书签名称。我有一个 ZSH 功能,可以帮助我在 Linux 框上完成书签名称的制表符,但在 Windows 上我不走运。
  • 在 Windows 上你也不能使用行星制造者的别名 - 你必须将其重写为 bat 样式

标签: mercurial tortoisehg mercurial-extension


【解决方案1】:

您可以为新命令创建别名,我们称之为 bupdate。添加到您的 .hgrc:

[alias]
bupdate = !HG up $($HG log $@ -T'{bookmarks}\n' | cut -d\  -f1)

致电hg bupdate,就像您通常致电hg update 一样。这将激活附加到特定修订的第一个书签。如果没有书签,它将简单地更新到修订版。仍然需要手动更新附加到修订的第二个或第三个或更多书签。

【讨论】:

  • Regexp (cset hash|number is unknown, btw) 可以在集合中返回多个版本...在这种情况下你会失败
  • 是的。不过我不认为这是一个大问题。如果我给它非唯一修订版,“正常”更新也会失败。
猜你喜欢
  • 1970-01-01
  • 2010-12-19
  • 1970-01-01
  • 2011-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多