TortoiseHg使用备忘(4.7的Merge后报错 tortoisehg.util.configitems,自动Merge行尾风格改变)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Piao_Polar/article/details/82226364

关于4.7 Merge中断后Update报错

前两天为了做Merge转换,把TortoiseHg升级到了4.7,然后发现Merge一半没commit之前,如果试图直接Update来丢弃会报错

#!python
** Mercurial version (4.7).  TortoiseHg version (4.7)
** Command: --nofork workbench
** CWD:  xxxxx
** Encoding: cp936
** Extensions loaded: tortoisehg.util.configitems
** Python version: 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bit (AMD64)]
** Windows version: sys.getwindowsversion(major=6, minor=2, build=9200, platform=2, service_pack='')
** Processor architecture: x64
** Qt-5.9.2 PyQt-5.9.1 QScintilla-2.10.2.dev1711012104
Traceback (most recent call last):
  File "tortoisehg\hgqt\repowidget.pyo", line 1698, in updateToRevision
  File "tortoisehg\hgqt\update.pyo", line 408, in __init__
  File "tortoisehg\hgqt\update.pyo", line 150, in __init__
  File "tortoisehg\hgqt\update.pyo", line 183, in update_info
  File "tortoisehg\hgqt\csinfo.pyo", line 528, in update
  File "tortoisehg\hgqt\csinfo.pyo", line 381, in get_markup
  File "tortoisehg\hgqt\csinfo.pyo", line 330, in get_markup
  File "tortoisehg\hgqt\csinfo.pyo", line 268, in get_data
  File "tortoisehg\hgqt\csinfo.pyo", line 200, in preset_func
AttributeError: 'changectx' object has no attribute 'thgtags'

就没法继续下去了

google搜索了下,貌似的确TortoiseHg的Bug,已经改好了,可惜还没release:
https://bitbucket.org/tortoisehg/thg/issues/5157/updated-to-47-unable-to-update-branch

这个应该是比较新版本的bug,我更新前类似的操作做过很多次并没有遇到这个问题,所以回退TortoiseHg的版本也许也可行

我目前临时解决方案是:
右键点击当前分支的某个旧版本,点击回退(backout),然后在弹出的准备回退(Prepair to backout)确认框中,点击丢弃(discard),就可以返回一个干净的状态了,之后就可以Update了

这里写图片描述

记得丢弃操作完成后,不要点下一步,而要点取消。因为我们并不是真的想要回退,只是要这个界面里的丢弃。

按理直接用hg命令行操作或者重新安装TortoiseHg的某个旧的健康版本也能解决这个问题

关于Hg的行尾自动解决冲突

另外一个问题是,自从windows上把BC的注册码给Mac用,windows上只用WinMerge和kdiff以后,每次Merge的时候,经常会有行尾冲突
There is a line end style conflict
虽然之前都是手工指定一下行尾
类似这里提到的操作 https://stackoverflow.com/questions/27382944/kdiff3-there-is-a-line-end-style-conflict
但需要操作的Merge的文件一多,尤其Unity工程的meta文件几乎每个都要手动点一下就很麻烦

考虑使用eol插件,配置项目的.hg\hgrc文件,这样配置貌似基本能解决问题
[extensions]
eol=
[encode]
**=cleverencode:
[decode]
**=cleverdecode:

以前貌似这样做过一次,后面忘了为啥去掉了,刚刚发现貌似这样修改后,有时候revert一些行尾修改会不实际执行,还有待之后观察

猜你喜欢

转载自blog.csdn.net/Piao_Polar/article/details/82226364