2010-07-16 3 views
2

저는 힘내 용 SSH 브릿지 역할을하기 위해 파라미코를 사용하여 계단 서버를 설정하고 있습니다. 문제없이 저장소를 복제 할 수 있으며 변경 사항을 밀어 넣을 수도 있지만 성가신 오류 메시지가 표시됩니다.커스텀 쓰레기통을 가지고 계단을 열지 못했습니다.

[core] 
    repositoryformatversion = 0 
    filemode = true 
    bare = true 
    sharedRepository = all 
[receive] 
    denyNonFastForwards = false 
    denyCurrentBranch = false 
    denyDeletes = false 

이상한 일이 실제로 업데이 트 않는다 "마스터"이며, 나는 저장소에서 다른 지점이 없습니다 :

Pushing to [email protected]:/pckprojects/heyworld 
Counting objects: 5, done. 
Delta compression using up to 2 threads. 
Compressing objects: 100% (2/2), done. 
Writing objects: 100% (3/3), 262 bytes, done. 
Total 3 (delta 1), reused 0 (delta 0) 
To [email protected]:/pckprojects/heyworld 
    348dfdc..1c0468e master -> master 
updating local tracking ref 'refs/remotes/origin/master' 
error: failed to push some refs to '[email protected]:/pckprojects/heyworld' 

내 자식의 설정은 다음과 같습니다. 또한, SSH를 통하지 않고 디스크에서 저장소를 복제/푸시하면 오류가 표시되지 않습니다.

누구든지 내 생각에이 오류가 표시됩니다.

감사합니다 ...

편집 :

은 가능성이 내 문제는 내 SSH 서버에 관련된 것 때문에, 메인 루프는 다음과 같습니다 :

 proc = subprocess.Popen(command, stdin=subprocess.PIPE, 
       stdout=subprocess.PIPE, stderr=subprocess.PIPE) 

     while True: 
      try: 
       r_ready, w_ready, x_ready = select.select(
        [channel, proc.stdout, proc.stderr], [proc.stdin], []) 
      except Exception, e: 
       print e 
       print 'channel: ' + str(channel) 
       print 'proc: ' + str(proc) 

      if channel in r_ready and channel.recv_ready(): 
       data = channel.recv(128) 
       if len(data) > 0: 
        print 'IN>channel ' + repr(data) 
        proc.stdin.write(data) 
       else: 
        pass 

      if proc.stdout in r_ready: 
       data = proc.stdout.read(1) 
       channel.sendall(data) 

      if proc.stderr in r_ready: 

       data = proc.stdout.read(1) 
       if len(data) > 0: 
        channel.sendall(data) 

       else: 
        print "Encountered empty stderr, breaking" 
        break      

     print 'will close' 
     channel.shutdown(2) 
     channel.close() 

추가 정보

나는 실제 의사 소통을 보는 것이 도움이 될 것이라고 생각했다. 이것은 git 클라이언트가 거의 이것을 많이 볼 수 없기 때문에 서버 측에 나타납니다.

git-receive-pack /home/www/data/project/heyworld/ 

OUT >> 
00721ee2436e45c80236878132dc87d9e9fee6a81de5 refs/heads/master\x00 report-status delete-refs side-band-64k ofs-delta\n0000 

IN >> 
00841ee2436e45c80236878132dc87d9e9fee6a81de5 6054b3358787bafd1d96c0fdfbf016d620ccdf09 refs/heads/master\x00 report-status side-band-64k0000 

IN >> 
PACK\x00\x00\x00\x02\x00\x00\x00\x03\x96\x0ex\x9c\xa5\x8cM\x0e\xc2 \x14\x06\xf7\x9c\x82\x0b\xd8<(?\x8f\xc4\x18\xf7n\xbc\x02\xc2\x87%\x16\xdb4\xb8\xf0\xf66\xbd\x82\xcb\x99d\xa6o\x80\x846\xd9!)\x1b\x0b\xb1\r1$dO\x05\xa6\xb0\[email protected]\x06%D<\xb2\x16k\xdc\xf0\xeeRa/F\x07c\x13\x93\x1e\x1d{V\xa3\xce\x89}\x0e\x08\x05p\x91U\x86\x15\xf1\xd3\xa7e\x93\xf7\xa9\xceu\x95\xb7\xda\x1a\xbe\xf2\xbc\x1e8\xbc\x0e\xbc>[\xac\xf3\x90\x96v\x91J\xfb`X\xb3V\xf2D\x96H\xec\xb6\xd5\xde\xf1\xc7B4,\xe2\x07\xff\x8aF\xba\xaf\x01x\x9c340031Q\xc8H\xaddP\xd8P\xfcmzGg\x8aY\xc4\x8e\xad\xb1<\xca\x1b\xa3\x93\xee\xbd\x05\x00\xa8\xb4\x0c\x9by\xd3\xfe\xa0C\x86fU\x18\xbe\xa5\x86\xac5*\xf7\x11\x89\x8b9$x\x9c\x0b\x8b\x9a\x10\xc6\x92\x9b\x9a\xcf\x05\x00\x0f\xb2\x02\xe6=\x12?\xde\x1f\x9a=v\x0c3c\xf66\xc6\xcc1y\xe4\xb8\xa0 

OUT >> 
0030\x01000eunpack ok\n009krf/ed/atr0000 

CLOSE CONNECTION 

답변

1

git 메일 링리스트에서 매우 도움이되는 사용자는 어둠 속에서 찌르다 고 생각한 것을 받아 들였습니다.

Git이 푸시 할 때 예상하는 종료 코드를 반환하지 않았습니다. 그것은 그 문제를 해결했습니다.

0

아마 알고 있듯이, 문제가 될 수 있습니다.

  • 내 초기 추측은 일부 중요하지 않은 정보를
  • 수있는 몇 가지 다른 문제뿐만 아니라 ...

커플 신속도를 업데이트 할 수 없습니다, 따라서 일부 권한이 서버에 정확하지 않은 것입니다 및 질문/제안 :

  • 명령을 수동으로 성공적으로 실행할 수 있습니까? 푸시 명령에 --verbose 플래그를 추가
  • 시도하여 문제를 파악 패스트 트랙에 당신을 넣을 수있는 자세한 플래그를 추가

(예. 자식은 --verbose 원산지/마스터 밀어).

+0

답변 해 주셔서 감사합니다. 위 출력은 실제로 이미 자세한 플래그를 사용하고 있습니다. 퍼미션 역시 내 첫 번째 생각 이었지만 SSH 프로세스가 루트로 실행 중이므로 실제로 문제가 될 수 없습니다. 파일 기반 소스로 사용하는 경우 복제, 푸시, 풀링 등의 작업이 제대로 작동하므로 저장소에 문제가 있다고 생각하지 않습니다. Git의 장황한 플래그가주는 정보가 얼마나 불만 스러운지, 정말 유용한 것을 알려주지 않으므로 말입니다. – philipk

관련 문제