[thg] windows版のTortoiseHg 4.3.1で hg pull が未知の親!エラー

290 views
Skip to first unread message

ohira

unread,
Dec 12, 2017, 3:27:24 AM12/12/17
to mercurial-ja
いつもお世話になっております。
おおひらです。

windows版のTortoiseHg で 未知の親! というエラーが発生して hg pull を実行できないエラーが発生しました。

% hg pull --verbose ssh://h...@escm11.mxfw.net/trunk/sps_25
ssh://h...@escm11.mxfw.net/trunk/sps_25 から取り込み中
変更点を探索中
リビジョンを追加中
マニフェストを追加中
ファイルの変更を追加中
トランザクションを中断します!
ロールバックを完了しました
中止: data/ESFW/common/entity/ItemVarPatternEntity.php.i@4651c45464b4: 未知の親!
[コマンドの返り値 255 Mon Dec 11 18:10:47 2017]

4651c45464b4 は存在しないリビジョンです。

ESFW/common/entity/ItemVarPatternEntity.php はファイルとして存在しますが

data/ESFW/common/entity/ItemVarPatternEntity.php.i
data/ESFW/common/entity/ItemVarPatternEntity.php
ESFW/common/entity/ItemVarPatternEntity.php.i
は存在しないファイルです。

hg clone を行い新しくリポジトリをcloneすることで
新しく clone したリポジトリでは問題なくhg pull できました。

今後同じような現象が発生しないようにするために気をつけるべき点などありますでしょうか?

リポジトリがおかしな状態になったのかと考えて、サンプル確保のため、
問題が発生したリポジトリで hg serve を実行して
他のPCや同じPC内に hg clone http://<問題があったリポジトリのPC>:8000 sps_25_test
とか実行すると clone しているクライアント側のPCやUNIXでエラーが発生して cloneがロールバックされました。

(hg serve での clone は諦めて USBメモリーにバックアップ取りました)



ohira

unread,
Dec 12, 2017, 7:56:33 PM12/12/17
to mercurial-ja
おおひらです。

この問題とは関係ない情報かもしれませんが、
問題が発生したリポジトリで hg serveを起動して他の場所へhg cloneした時に発生するエラーは以下のようなものです。

windows PCで実行した場合
** 非同梱のエクステンション flow に起因する例外が発生しました。
** 当該エクステンションのサポート対象 Mercurial の版: unknown
** エクステンション flow を無効化してから、再度同じ処理を実行してください。
** 問題が改善された場合、 障害の発生を エクステンションの作者 に報告してください
** Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bi
t (AMD64)]
Mercurial - 分散構成管理ツール (バージョン 4.3.1)
** Extensions loaded: flow, strip, mq
Traceback (most recent call last):
  File "hg", line 61, in <module>
  File "mercurial\dispatch.pyo", line 81, in run
  File "mercurial\dispatch.pyo", line 162, in dispatch
  File "mercurial\dispatch.pyo", line 302, in _runcatch
  File "mercurial\dispatch.pyo", line 310, in _callcatch
  File "mercurial\scmutil.pyo", line 150, in callcatch
  File "mercurial\dispatch.pyo", line 292, in _runcatchfunc
  File "mercurial\dispatch.pyo", line 896, in _dispatch
  File "mercurial\dispatch.pyo", line 658, in runcommand
  File "mercurial\dispatch.pyo", line 904, in _runcommand
  File "mercurial\dispatch.pyo", line 893, in <lambda>
  File "mercurial\util.pyo", line 1077, in check
  File "mercurial\commands.pyo", line 1410, in clone
  File "mercurial\hg.pyo", line 631, in clone
  File "mercurial\exchange.pyo", line 1251, in pull
  File "mercurial\exchange.pyo", line 1393, in _pullbundle2
  File "mercurial\bundle2.pyo", line 396, in processbundle
zstd.ZstdError: zstd decompress error: Corrupted block detected


別のwindows PCの場合
** 非同梱のエクステンション flow に起因する例外が発生しました。
** 当該エクステンションのサポート対象 Mercurial の版: unknown
** エクステンション flow を無効化してから、再度同じ処理を実行してください。
** 問題が改善された場合、 障害の発生を エクステンションの作者 に報告してください

** Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bi
t (AMD64)]
Mercurial - 分散構成管理ツール (バージョン 4.3.1)
** Extensions loaded: flow, strip, mq
Traceback (most recent call last):
  File "hg", line 61, in <module>
  File "mercurial\dispatch.pyo", line 81, in run
  File "mercurial\dispatch.pyo", line 162, in dispatch
  File "mercurial\dispatch.pyo", line 302, in _runcatch
  File "mercurial\dispatch.pyo", line 310, in _callcatch
  File "mercurial\scmutil.pyo", line 150, in callcatch
  File "mercurial\dispatch.pyo", line 292, in _runcatchfunc
  File "mercurial\dispatch.pyo", line 896, in _dispatch
  File "mercurial\dispatch.pyo", line 658, in runcommand
  File "mercurial\dispatch.pyo", line 904, in _runcommand
  File "mercurial\dispatch.pyo", line 893, in <lambda>
  File "mercurial\util.pyo", line 1077, in check
  File "mercurial\commands.pyo", line 1410, in clone
  File "mercurial\hg.pyo", line 631, in clone
  File "mercurial\exchange.pyo", line 1251, in pull
  File "mercurial\exchange.pyo", line 1393, in _pullbundle2
  File "mercurial\bundle2.pyo", line 396, in processbundle
zstd.ZstdError: zstd decompress error: Corrupted block detected



windows PCの場合(Extension停止)
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\ohira\repos\kawamura>set HGRCPATH=nul

C:\Users\ohira\repos\kawamura>hg clone http://XXX.XXX.XXX.170:8000 sps_25
全リビジョンを取得中
リビジョンを追加中
マニフェストを追加中
ファイルの変更を追加中
トランザクションを中断します!
ロールバックを完了しました
** 予期せぬ例外が発生しました。以下の URL から障害報告してください
** Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC v.1500 32 bi
t (Intel)]
Mercurial - 分散構成管理ツール (バージョン 4.3.1)
** Extensions loaded:
Traceback (most recent call last):
  File "hg", line 61, in <module>
  File "mercurial\dispatch.pyo", line 81, in run
  File "mercurial\dispatch.pyo", line 162, in dispatch
  File "mercurial\dispatch.pyo", line 302, in _runcatch
  File "mercurial\dispatch.pyo", line 310, in _callcatch
  File "mercurial\scmutil.pyo", line 150, in callcatch
  File "mercurial\dispatch.pyo", line 292, in _runcatchfunc
  File "mercurial\dispatch.pyo", line 896, in _dispatch
  File "mercurial\dispatch.pyo", line 658, in runcommand
  File "mercurial\dispatch.pyo", line 904, in _runcommand
  File "mercurial\dispatch.pyo", line 893, in <lambda>
  File "mercurial\util.pyo", line 1077, in check
  File "mercurial\commands.pyo", line 1410, in clone
  File "mercurial\hg.pyo", line 631, in clone
  File "mercurial\exchange.pyo", line 1251, in pull
  File "mercurial\exchange.pyo", line 1393, in _pullbundle2
  File "mercurial\bundle2.pyo", line 396, in processbundle
zstd.ZstdError: zstd decompress error: Corrupted block detected

C:\Users\ohira\repos\kawamura>



PC-BSDで実行した場合
[shin@faith] ~/work% hg clone http://xxx.xxx.xxx.170:8000/ sps_25_kawamura
全リビジョンを取得中
リビジョンを追加中
マニフェストを追加中
ファイルの変更を追加中
トランザクションを中断します!
ロールバックを完了しました
** 非同梱のエクステンション flow に起因する例外が発生しました。
** 当該エクステンションのサポート対象 Mercurial の版: unknown
** エクステンション flow を無効化してから、再度同じ処理を実行してください。
** 問題が改善された場合、 障害の発生を エクステンションの作者 に報告してください。
** Python 2.7.13 (default, Apr 20 2017, 17:18:49) [GCC 4.8.5]
Mercurial - 分散構成管理ツール (バージョン 4.2)
** Extensions loaded: flow, strip, mq, rebase
Traceback (most recent call last):
File "/usr/local/bin/hg", line 45, in <module>
mercurial.dispatch.run()
File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 83, in run
status = (dispatch(req) or 0) & 255
File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 164, in dispatch
ret = _runcatch(req)
File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 295, in _runcatch
return _callcatch(ui, _runcatchfunc)
File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 303, in _callcatch
return scmutil.callcatch(ui, func)
File "/usr/local/lib/python2.7/site-packages/mercurial/scmutil.py", line 146, in callcatch
return func()
File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 285, in _runcatchfunc
return _dispatch(req)
File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 911, in _dispatch
cmdpats, cmdoptions)
File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 648, in runcommand
ret = _runcommand(ui, options, cmd, d)
File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 919, in _runcommand
return cmdfunc()
File "/usr/local/lib/python2.7/site-packages/mercurial/dispatch.py", line 908, in <lambda>
d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)
File "/usr/local/lib/python2.7/site-packages/mercurial/util.py", line 1077, in check
return func(*args, **kwargs)
File "/usr/local/lib/python2.7/site-packages/mercurial/commands.py", line 1561, in clone
shareopts=opts.get('shareopts'))
File "/usr/local/lib/python2.7/site-packages/mercurial/hg.py", line 619, in clone
streamclonerequested=stream)
File "/usr/local/lib/python2.7/site-packages/mercurial/exchange.py", line 1238, in pull
_pullbundle2(pullop)
File "/usr/local/lib/python2.7/site-packages/mercurial/exchange.py", line 1378, in _pullbundle2
op = bundle2.processbundle(pullop.repo, bundle, pullop.gettransaction)
File "/usr/local/lib/python2.7/site-packages/mercurial/bundle2.py", line 387, in processbundle
raise exc
zstd.ZstdError: zstd decompress error: Corrupted block detected
[shin@faith] ~/work%





2017年12月12日火曜日 17時27分24秒 UTC+9 ohira:

Katsunori FUJIWARA

unread,
Dec 29, 2017, 12:59:07 AM12/29/17
to mercurial-ja
藤原です。

返信が遅くなって済みません。


2017年12月12日 17:27 ohira <shin....@gmail.com>:

> いつもお世話になっております。
> おおひらです。
>
> windows版のTortoiseHg で 未知の親! というエラーが発生して hg
> pull を実行できないエラーが発生しました。
>
> % hg pull --verbose ssh://h...@escm11.mxfw.net/trunk/sps_25
> ssh://h...@escm11.mxfw.net/trunk/sps_25 から取り込み中
> 変更点を探索中
> リビジョンを追加中
> マニフェストを追加中
> ファイルの変更を追加中
> トランザクションを中断します!
> ロールバックを完了しました
> 中止: data/ESFW/common/entity/ItemVarPatternEntity.php.i@4651c45464b4: 未知の親!
> [コマンドの返り値 255 Mon Dec 11 18:10:47 2017]
>
> 4651c45464b4 は存在しないリビジョンです。
>
> ESFW/common/entity/ItemVarPatternEntity.php はファイルとして存在しますが
>
> data/ESFW/common/entity/ItemVarPatternEntity.php.i
> data/ESFW/common/entity/ItemVarPatternEntity.php
> ESFW/common/entity/ItemVarPatternEntity.php.i
> は存在しないファイルです。

ここで表示される情報は、以下のような内部的な情報なので、「ファイル
単位の履歴管理で、データ不整合が発生したのだな」程度に理解していた
だければよろしいかと。

- data/ESFW/common/entity/ItemVarPatternEntity.php.i

ESFW/common/entity/ItemVarPatternEntity.php の履歴情報を管理し
ているファイル。 .hg/store 配下に格納。

- 4651c45464b4

ESFW/common/entity/ItemVarPatternEntity.php ファイル単独の履歴
情報における識別値。


> hg clone を行い新しくリポジトリをcloneすることで
> 新しく clone したリポジトリでは問題なくhg pull できました。
>
> 今後同じような現象が発生しないようにするために気をつけるべき点な
> どありますでしょうか?

後述するように、"hg verify" を使って不整合が出たリポジトリを修復す
ることはできます。

しかし、破損の原因は多岐にわたるため、予防策としては、特に決め手と
言えるものはないですねぇ。


> リポジトリがおかしな状態になったのかと考えて、サンプル確保のため、
> 問題が発生したリポジトリで hg serve を実行して他のPCや同じPC内に
> hg clone http://<問題があったリポジトリのPC>:8000 sps_25_test と
> か実行すると clone しているクライアント側のPCやUNIXでエラーが発
> 生して cloneがロールバックされました。
>
> (hg serve での clone は諦めて USBメモリーにバックアップ取りました)

現象から見るに、問題が発生するリポジトリにおいて "hg verify" を実
行することで、不整合な状態を解消することができると思います。

但し、ここで言う「不整合な状態の解消」は、「不整合な履歴情報の破棄」
に過ぎませんので、ある程度履歴が失われることは覚悟してください。

詳細は "hg help verify" で URL が表示される Wiki ページを参照して
みてください。

"hg verify" は、履歴情報の書き換えを伴います。色々試してみたい場合
は、不整合な状態のリポジトリを、ファイル操作ベースでコピーしておい
た方が良いでしょう。


--
----------------------------------------------------------------------
FUJIWARA Katsunori(flying...@gmail.com)
Reply all
Reply to author
Forward
0 new messages