몇 번 잡아당기고 나면, 또 한 번 밀고 당기고 나면, 잡아당기다가 붕괴될 수도 있다.

5805 단어 hg-git

묘사

** Mercurial Distributed SCM (version 1.5)
** Extensions loaded: hg-git
Traceback (most recent call last):
  File "/usr/bin/hg", line 27, in 
    mercurial.dispatch.run()
  File "/usr/lib/python2.6/site-packages/mercurial/dispatch.py", line 16, in run
    sys.exit(dispatch(sys.argv[1:]))
  File "/usr/lib/python2.6/site-packages/mercurial/dispatch.py", line 30, in dispatch
    return _runcatch(u, args)
  File "/usr/lib/python2.6/site-packages/mercurial/dispatch.py", line 47, in _runcatch
    return _dispatch(ui, args)
  File "/usr/lib/python2.6/site-packages/mercurial/dispatch.py", line 466, in _dispatch
    return runcommand(lui, repo, cmd, fullargs, ui, options, d)
  File "/usr/lib/python2.6/site-packages/mercurial/dispatch.py", line 336, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/lib/python2.6/site-packages/mercurial/dispatch.py", line 517, in _runcommand
    return checkargs()
  File "/usr/lib/python2.6/site-packages/mercurial/dispatch.py", line 471, in checkargs
    return cmdfunc()
  File "/usr/lib/python2.6/site-packages/mercurial/dispatch.py", line 465, in 
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/usr/lib/python2.6/site-packages/mercurial/util.py", line 401, in check
    return func(*args, **kwargs)
  File "/usr/lib/python2.6/site-packages/mercurial/commands.py", line 2402, in pull
    modheads = repo.pull(other, heads=revs, force=opts.get('force'))
  File "/home/mk/hg-git/hggit/hgrepo.py", line 12, in pull
    git.fetch(remote.path, heads)
  File "/home/mk/hg-git/hggit/git_handler.py", line 95, in fetch
    refs = self.fetch_pack(remote, heads)
  File "/home/mk/hg-git/hggit/git_handler.py", line 615, in fetch_pack
    f.write, self.ui.status)
  File "/usr/lib/python2.6/site-packages/dulwich/client.py", line 336, in fetch_pack
    progress)
  File "/usr/lib/python2.6/site-packages/dulwich/client.py", line 166, in fetch_pack
    have = graph_walker.next()
  File "/usr/lib/python2.6/site-packages/dulwich/object_store.py", line 726, in next
    ps = self.get_parents(ret)
  File "/usr/lib/python2.6/site-packages/dulwich/object_store.py", line 234, in 
    return ObjectStoreGraphWalker(heads, lambda sha: self[sha].parents)
  File "/usr/lib/python2.6/site-packages/dulwich/object_store.py", line 100, in __getitem__
    type, uncomp = self.get_raw(sha)
  File "/usr/lib/python2.6/site-packages/dulwich/object_store.py", line 317, in get_raw
    raise KeyError(hexsha)
KeyError: '02b00820423dfcf3270de966d0ab3b1c098e9bf2'

Using latest dulwich and latest hg-git

토론 #1

Need significantly more information to diagnose. Is this only a particular repo? Is it public?

토론 #2

It is git+ssh://[email protected]/gitroot/freerdp/freerdp and is thus password-protected. It is not reproducible in new repos, but I have seen it a couple of times - and a new clone works fine.

I haven't seen it on other git repos, but this is the only one I have push access to.

Can it be be caused by qpush and qpush until qfin and push?

Or ... perhaps it is related to the .git folder that sometimes appears and I might have messed too much with?

Can I do something to debug in my local failing repo?

토론 #셋

What does

$ git --git-dir=.hg/git show --pretty=raw 02b00820423dfcf3270de966d0ab3b1c098e9bf2 | head
주다
존재하지 않으면 git-mapfile 에 오래된 맵이 존재할 수 있습니다.

토론 #4

나도 여기서 같은 문제가 있다(hggit 리콜, rctay의 rc/fixann 라벨을 당기려고 시도한다).이것은 오래된 맵으로 인해 일어났지만, 'hg git cleanup' 은 그것을 복구하지 않았습니다.
문제는 hg 제출이 존재하지 않는git 제출에 비치는 것입니다.
한 마디로 하면 hg-gc와 hg-gex가 이 문제를 해결했다.아니요.수은.
그런데 문제가 하나 있다.git (어떤 git 버전의gen에서 만들었다고 가정합니다.)
나는 방금 나의 작업 디렉터리'freerdp '에 하위 폴더'freerdp' 와 다른 작업 디렉터리가 있다는 것을 알아차렸다.
지도 파일에 관해서 나는 가지고 있다.gg/git 맵 파일은 이상한 플러그인 리콜 프로토콜이든 정교한 새 리콜 프로토콜이든
02b00820423dfcf3270de966d0ab3b1c098e9bf2 e73ad6b126a394c1ed1cbd2447b4e12b1b32e8c5
플러그인 환매 협의는freerdp/를 한층 더 가지고 있다.git/참고문헌/책임자/석사
02b00820423dfcf3270de966d0ab3b1c098e9bf2
이 보고서는 좀 곤혹스럽다.나는 그도 이 일을 보게 되어 매우 기쁘다. 만약 다시 발생한다면, 나는 세심하게 주의할 것이다.
[argh. 나는github와 그 표시의 친구가 아니다.]

토론 #5

또 받았어요.
파일 "/usr/lib/python2.6/site packages/dulwich/object store.py", 317행, get raw에서
raise KeyError(hexsha)
키 오류: "498d38a8a89bd3ff06772aa7d27f9d5b2275e8ff"
치명적: 예기치 않은 원격 중단
$grep-r 498d38a8a89bd3ff06772aa7d27f9d5b2275e8ff.
./.gg/git 맵 파일: 498D38A89BD3FF06772AA7F9D5B2275E8FF9A2348F860349E3806B9645F64740206139E13
./.git/refs/heads/master:498d38a8a89bd3ff06772aa7d27f9d5b2275e8ff
$ls-경궤$(찾기-f형)|꼬리
-rw-rw-r--1 mk mk 772480 2010-03-28 20:40/freerdp 알 수 없습니다.타르.중국 광저우
-rw------1 mk mk 0 2010-03-28 20:45./.git/objects/pack/tmpBFSU9L.포장하다
-RWXR-x 1 mk mk 0 2010-03-28 20:45./.git/info/excludes
-RWXR-x 1 mk mk 24 2010-03-28 20:45./.지트
-RWXR-x 1 mk mk 18 2010-03-28 20:45./.git/설명
-RWXR-x 1 mk mk 104 2010-03-28 20:45/.git/config
-rw-rw-r--1 mk mk 44280 2010-03-31 11:57./.hg/git 맵 파일
-RWXR-x 1 mk mk 41 2010-03-31 11:57./.git/참고문헌/책임자/석사
-RWXR-x 1 mk mk 41 2010-03-31 11:57./.지트/참고문헌/담당자/유지보수
-rw------1 mk mk 0 2010-03-31 11:57./.git/objects/pack/tmpTlrtUw.포장하다
gg gc 다음은pull에서 복구했습니다.

토론 #6

@kiilerix, 복구/해결 방안을 보고해 주셔서 감사합니다.걸출하다

좋은 웹페이지 즐겨찾기