【发布时间】:2019-09-05 00:50:26
【问题描述】:
hg pull 是否可以选择强制更新(非转发)所有书签甚至修剪 所有 远程存储库中不再存在的书签?
“修剪”是指删除远程存储库中不再存在的本地书签。否则,即使它们已经过时,本地书签也会不断累积。
换句话说,我想使用书签,就像使用 Git (remote) refs 一样。
如果没有内置方法来执行此操作,执行这些任务的推荐命令顺序是什么?
【问题讨论】:
hg pull 是否可以选择强制更新(非转发)所有书签甚至修剪 所有 远程存储库中不再存在的书签?
“修剪”是指删除远程存储库中不再存在的本地书签。否则,即使它们已经过时,本地书签也会不断累积。
换句话说,我想使用书签,就像使用 Git (remote) refs 一样。
如果没有内置方法来执行此操作,执行这些任务的推荐命令顺序是什么?
【问题讨论】:
这个问题并不完全清楚,所以我在这里做一些猜测。书签通常会在拉取期间更新,除非它们被更改为指向较早的修订版。在这种情况下,无论如何,您都可以使用hg pull -B <bookmarkname> 来拉书签。
如果修剪书签是指从远程服务器中删除它们,则首先必须在本地删除它们,然后推送已删除的书签。即
hg bookmark -d <bookmarkname>
hg push -B <bookmarkname> <repository>
删除远程存储库中不存在的所有个书签的最简单方法是首先删除所有不活动的书签,然后再次从存储库中提取。
例子:
hg bookmark -d $(hg bookmarks | awk '{if (NF == 2) print $1;}')
hg pull
您可以将第一个命令作为别名放入.hgrc 文件中,例如:
[alias]
clrbookmarks = !$HG bookmark -d $($HG bookmarks | awk '{if (NF == 2) print $$1;}')
【讨论】: