我在mercurial存储库中找到了一个无名节点。
在执行标签列表命令“hg tags”作为生成输出的一部分时,我找到了两次提到的相同节点。
hg tags命令的输出包含以下重复节点:
xyz_release_tag daa262c10
daa262c10
在其中一个条目中,节点有一个名称,但节点没有名称的另一个条目。
我正在将mercurial存储库迁移到git,我使用快速导出来进行转换。 此“无名”节点的存在会在转换过程中导致错误。类似的问题已经在https://github.com/frej/fast-export/issues/1进行了讨论。
作为一种快速解决方法,我快速更改了本地存储库缓存文件。在运行hg tags命令进行列表后,会创建一个名为“tags2-visible”的文件。一旦我修改此文件以删除无名节点的条目,它就会消失并且转换过程成功。
我不确定这是否是正确的方法,或者完全没有其他办法。
有什么想法?
答案 0 :(得分:2)
产生的quickfix:
hg tags # Creates .hg/cache/tags2-visible
# Fix the nameless tag
sed -rie 's/^([^ ]+) $/\1 \1/' .hg/cache/tags2-visible
我是如何找到解决方案的:
$ hg tags | tail -3
PRODUCION_18032010 216:3e0a6415bbde
166:809065c08005
PRODUCION 125:d98f65c06bac
$ # Where is the problem?
$ grep -r 809065c08005
.hg/cache/tags2-visible:809065c08005ef2d261f10f72f17ea5fcd1e7540
$ # Add " test" to the end of this line
$ sed -i .hg/cache/tags2-visible -e 's/809065c08005ef2d261f10f72f17ea5fcd1e7540/809065c08005ef2d261f10f72f17ea5fcd1e7540 test/'
$ # Checking the edition
$ grep -r 809065c08005
.hg/cache/tags2-visible:809065c08005ef2d261f10f72f17ea5fcd1e7540 test
$ # Checking the validity of the hack
$ hg tags | tail -3
PRODUCION_18032010 216:3e0a6415bbde
test 166:809065c08005
PRODUCION 125:d98f65c06bac
编辑完.hg / cache / tags2-可见添加标签到分支快速导出为我工作。
任何人都会看到以这种方式编辑.hg / cache / tags2-visible的任何问题?