로컬 클론으로 푸시할 때 "abort:git remote error:refs/heads/master 업데이트 실패"

8516 단어 hg-git

묘사

저는 Git 전문가가 아닙니다. 이것이 바로 제가 Mercurial + Hg Git를 사용하는 이유입니다.그러나 이런 Git 오류에 대한 해결책을 찾아야 하기 때문에 당신의 삶을 가볍게 할 수는 없다.
Git로 OpenFrameworks 저장소를 가져왔습니다. (매우 방대합니다.) 그리고 Hg로 로컬에서 복제하여 제출했고 로컬 저장소로 되돌리려 했지만 실패했습니다.
$ hg push
pushing to /home/user07/p/openFrameworks
creating and sending data
abort: git remote error: refs/heads/master failed to update
전체 소거:
$ hg push --traceback --debug -v
pushing to /home/user07/p/openFrameworks
creating and sending data
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 87, in _runcatch
    return _dispatch(req)
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 679, in _dispatch
    cmdpats, cmdoptions)
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 454, in runcommand
    ret = _runcommand(ui, options, cmd, d)
  File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 182, in wrap
    return wrapper(origfn, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/hgext/color.py", line 368, in colorcmd
    return orig(ui_, opts, cmd, cmdfunc)
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 733, in _runcommand
    return checkargs()
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 687, in checkargs
    return cmdfunc()
  File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 676, in <lambda>
    d = lambda: util.checksignature(func)(ui, *args, **cmdoptions)
  File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 385, in check
    return func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/mercurial/commands.py", line 3884, in push
    newbranch=opts.get('new_branch'))
  File "/home/user07/p/hg-git/hggit/hgrepo.py", line 22, in push
    git.push(remote.path, revs, force)
  File "/home/user07/p/hg-git/hggit/git_handler.py", line 227, in push
    changed_refs = self.upload_pack(remote, revs, force)
  File "/home/user07/p/hg-git/hggit/git_handler.py", line 704, in upload_pack
    raise hgutil.Abort(_("git remote error: ") + str(e))
Abort: git remote error: refs/heads/master failed to update
abort: git remote error: refs/heads/master failed to update
나 이제 어떡하지?어떻게 상류로 이 물건들을 인도합니까?Hg Git 는 자동으로 이 문제를 해결할 수 있습니까?

토론 #1

비원시 재구매 계약에서 모바일 REF가 실패할 수 있습니다.이 세상에서 아무것도 할 수 없어
hggit측.
오류나 기능 요청을 보고하는 대신 지원이 필요한 경우
hggit 구글 그룹을 시험해 보세요.
2011년 11월 17일 오전 12:04, 안나토리 텍토닉은 다음과 같이 썼다.

I am not a Git expert, that's why I use Mercurial + Hg-Git. But it doesn't make your life easier, because you still have to look for workarounds for Git errors like this one.

I fetched openFrameworks repository (which is huge) using Git, then cloned it locally with Hg, made commits and tried to push back into local repository, but it failed:

sh $ hg push pushing to /home/user07/p/openFrameworks creating and sending data abort: git remote error: refs/heads/master failed to update

Full Traceback:

python $ hg push --traceback --debug -v pushing to /home/user07/p/openFrameworks creating and sending data Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 87, in _runcatch return _dispatch(req) File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 679, in _dispatch cmdpats, cmdoptions) File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 454, in runcommand ret = _runcommand(ui, options, cmd, d) File "/usr/lib/python2.7/dist-packages/mercurial/extensions.py", line 182, in wrap return wrapper(origfn, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/hgext/color.py", line 368, in colorcmd return orig(ui_, opts, cmd, cmdfunc) File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 733, in _runcommand return checkargs() File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 687, in checkargs return cmdfunc() File "/usr/lib/python2.7/dist-packages/mercurial/dispatch.py", line 676, in<lambda> d = lambda: util.checksignature(func)(ui, *args, **cmdoptions) File "/usr/lib/python2.7/dist-packages/mercurial/util.py", line 385, in check return func(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/mercurial/commands.py", line 3884, in push newbranch=opts.get('new_branch')) File "/home/user07/p/hg-git/hggit/hgrepo.py", line 22, in push git.push(remote.path, revs, force) File "/home/user07/p/hg-git/hggit/git_handler.py", line 227, in push changed_refs = self.upload_pack(remote, revs, force) File "/home/user07/p/hg-git/hggit/git_handler.py", line 704, in upload_pack raise hgutil.Abort(_("git remote error: ") + str(e)) Abort: git remote error: refs/heads/master failed to update abort: git remote error: refs/heads/master failed to update

What should I do now? How to commit this stuff upstream? Can Hg-Git do something about this automatically?


Reply to this email directly or view it on GitHub: https://github.com/schacon/hg-git/issues/236

토론 #2

는 왜 이런 참고 문헌을 갱신해야 합니까?이거 혹시 Hg Git 버그인가요?나는 복잡한 일을 하지 않았다. 단지 새 버전을 클론에 제출했을 뿐이다.

토론 #셋

42년 동안 이에 대해 조치를 취해야 한다.비누드 환매를 추진하는 것은 가능하다.따라서git가 cwd의 상태에 대해 곤혹스러움을 느낀다면git방면의 문제가 될 것이다.gggit는 혼란을 처리하기 위해 비누드 환매에 대한 경고를 보내야 한다.

토론 #4

아니요. 비누드 저장소로 밀어 넣으면 안 돼요.Git 작업 복사본을 의도적으로 손상시키는 일은 없습니다.

토론 #5

hg-git는git질환을 치료할 수 없습니다.

토론 #6

네, hggit를 사용하여git를 사용하는 것은 구글 번역을 사용해서 돈키호테를 읽는 것과 같습니다.

토론 #7

... 돈키호테를 제외하고는 어떤 언어로도 읽을 수 있는 책이다.

토론 #8

@jordigh:git에서 hg로 복제하려면 --bare를 사용하여git의 초기 복제만 하면 이 문제를 피할 수 있습니까?
e, g. 당신이 하고 있다면:
git clone http://path/to/whatever
hg git-clone /local/path/to/git/clone # or whatever the hg command is
...
그러면 첫 줄을 바꿀게요.
git clone --bare http://path/to/whatever
어쩌면, 이것이 부족한 점일까?
나는 확실하지 않다. 나는 네가 IRC에서 이 점을 언급한 것을 무작위로 보았다. 나는 hggit에 익숙하지 않다.나는 단지 상술한 내용이 주로git에 익숙하지 않은 사람들 (@techtonik) 에게 도움이 될 것이라고 추측할 뿐이다.(즉, @durin42가 한 말을 충분히 구체적이고 구체적으로 번역하려는 시도가 도움이 되었으면 합니다.)

토론 #9

너의 첫 번째 가설이 깨졌다.나는git에서 복제한 것이 아니다.나는 hg를 사용하기 시작해서 매우 기쁘다.그리고 나는 나의 hg 환매를git로 바꾸고 싶다.
이 점을 하기 위해서 나는 반드시 (만약 내가 틀렸다면 바로잡아 주십시오):
1) 빈 git 재구매를 만듭니다.
2) 어떤 방식으로 환매로 전환(또는 git init가 있는지 - 일부 - 옵션을 사용하여 환매를 생성)
3) hg에서 누드git로 환매 추진
4) 누드 리콜에서 정상적인git 리콜로 전환
엉덩이가 아파요.다 git 때문에 일이 엉망이 됐어.

토론 #10

man git init|grep bare
2012년 4월 4일 수요일 오전 9:01,jordigh
[email protected]
쓰기:

Your first assumption is broken. I'm not cloning from git. I happily started on hg. Then I wanted to convert my hg repo to git.

In order to do this, I must (correct me if I'm wrong):

1) Create an empty git repo. 2) Convert this to a bare repo somehow (or investigate if there is --some --option to git init to create a bare repo) 3) Push from hg to the bare git repo 4) Pull from the bare repo into the normal git repo

Pain in the butt... and all because git made a mess of things.


Reply to this email directly or view it on GitHub: https://github.com/schacon/hg-git/issues/236#issuecomment-4953923

토론 #11

durin42, 네, 그래서 첫걸음과 두 번째 걸음을 접었습니다.이것은 내가 원하는 더 간단한 조작을 완성하기 위해 여전히 세 가지 절차가 필요하다.

토론 #12

새로 초기화된 원격 장치에 천 메가바이트의 제출을 전송하지 못한 후에 이 문제에 부딪혔습니다.나는 이 데이터를 다시 전송하고 싶지 않지만, 나는 convert the repository to a bare one 리모컨에 주 참고를 수동으로 추가할 수 있다는 것을 발견했다.먼저 hg클론에서 주 해시를 확인합니다.
grep $(hg id -i) .hg/git-mapfile | awk '{print $1}'
그리고 이 명령의 결과를 원격 $repo/refs/heads/master에 저장합니다.

좋은 웹페이지 즐겨찾기