git push --all не работает при ошибке RPC; результат = 22, HTTP-код = 0 '

У меня интересная проблема. У меня есть любимый проект на битбакете, и до сих пор я мог получать и отправлять данные из двух разных сетей (дома и офиса). Потребовалось некоторое время, чтобы правильно настроить конфигурацию, но я понял это с помощью проб и ошибок. Теперь проблема в том, что я создал ветку в офисе (которая находится за прокси), и я не могу отправить ее в битбакет с параметром --all. Я осознаю:

Ошибка RPC; результат = 22, HTTP-код = 0

Вот git bash (измененный):

user@machine /c/dev/data/personal/projectname (master)
$ git push --all --dry-run
Password for 'https://[email protected]':
To https://[email protected]/username/projectname
 * [new branch]      ivymigration -> ivymigration

user@machine /c/dev/data/personal/projectname (master)
$ git push --all
Password for 'https://[email protected]':
Counting objects: 194, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (112/112), done.
Writing objects: 100% (116/116), 58.37 KiB, done.
Total 116 (delta 81), reused 0 (delta 0)
efrror: RPC failed; result=22, HTTP code = 0
atal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date

user@machine /c/dev/data/personal/projectname (master)
$ git config --global -l
http.proxy=http://user:password@proxy:8080
http.postbuffer=524288000
user.name=[My Name]
user.email=[my_name]@[my.domain]
core.autocrlf=true
push.default=upstream

Я пробовал вещи из RPC не удалось; результат=28, код HTTP = 0, но безуспешно. Смена https на git или git+ssh тоже не работает из-за прокси-сервера. Интересно, что отправка до сих пор работала без атрибута --all. Но как только я хочу отправить все это, включая новую ветку, все рушится.

Есть предположения?

Обновление №1:

Я попытался нажать ветку, следуя инструкциям в https://confluence.atlassian.com/display/BITBUCKET/Branching+a+Repository раздел «Как сделать ветку в git» безуспешно. Вот git bash:

user@machine /c/dev/data/personal/projectname (master)
$ git push origin ivymigration
Password for 'https://[email protected]':
Counting objects: 203, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (72/72), done.
Writing objects: 100% (125/125), 70.79 KiB, done.
Total 125 (delta 86), reused 88 (delta 49)
efrror: RPC failed; result=22, HTTP code = 0
atal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date

Как видите, я получаю ту же ошибку.

Обновление №2:

Я попробовал то, что предложил Сет, и вот результат:

user@machine /c/dev/data/personal/projectname (ivymigration)
$ GIT_TRACE=1 git push --all
trace: built-in: git 'push' '--all'
trace: run_command: 'git-remote-https' 'origin' 'https://[email protected]/username/projectname'
Password for 'https://[email protected]':
trace: run_command: 'send-pack' '--stateless-rpc' '--helper-status' '--thin' '--progress' 'https://[email protected]/username/projectname/' 'refs/heads/ivymigration:refs/heads/ivymigration'
trace: built-in: git 'send-pack' '--stateless-rpc' '--helper-status' '--thin' '--progress' 'https://[email protected]/username/projectname/' 'refs/heads/ivymigration:refs/heads/ivymigration'
trace: run_command: 'pack-objects' '--all-progress-implied' '--revs' '--stdout' '--thin' '--delta-base-offset' '--progress'
trace: built-in: git 'pack-objects' '--all-progress-implied' '--revs' '--stdout' '--thin' '--delta-base-offset' '--progress'
Counting objects: 203, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (72/72), done.
Writing objects: 100% (125/125), 70.79 KiB, done.
Total 125 (delta 86), reused 88 (delta 49)
efrror: RPC failed; result=22, HTTP code = 0
atal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date

Как вы можете видеть тот же результат и никакой дополнительной информации, связанной с фактическим сбоем. Итак, я попробовал вторую команду. Это не удалось, потому что я работаю в Windows, поэтому strace (Systrace для Windows) нет. Я также пытался создать ветку в сети без прокси (она же домашняя) и смог успешно git push --all оттуда. Как я сказал ранее. Я могу git push из сети через прокси (он же офис), но не могу git push --all.


person Tomas Babic    schedule 16.07.2012    source источник
comment
22 — это код curl CURLE_HTTP_RETURNED_ERROR, что означает, что внутри (на уровне протокола http) что-то пошло не так.   -  person Rudi    schedule 16.07.2012
comment
Попробуйте обновиться до последней версии libcurl и git. Вы также можете попробовать запустить GIT_TRACE=1 git push --all, а также strace -o/tmp/tr -s256 -f git push --all и посмотреть, есть ли в выводе и /tmp/tr что-нибудь интересное. В идеале попробуйте протестировать, не проходя через прокси и не ища ошибок на прокси-сервере.   -  person Seth Robertson    schedule 17.07.2012
comment
stackoverflow .com/questions/16557071/   -  person firedev    schedule 15.05.2013


Ответы (3)


Вот что мне помогло, следующая команда увеличивает буфер git до 500 МБ:

git config http.postBuffer 524288000

отсюда: Git: ошибка: сбой RPC; результат = 22, HTTP-код = 411

person firedev    schedule 15.05.2013

Что-то вроде взлома, но я обошел это, используя Fiddler2 и настроив прокси-сервер в .gitconfig для прохождения Скрипач

[http]
proxy = http://USER:[email protected]:8888

Недостатком является то, что вам нужно запустить Fiddler, прежде чем выполнять какие-либо удаленные параметры и пароль в виде простого текста, но, по крайней мере, это работает.

person nschonni    schedule 08.08.2012
comment
Я установил Fiddler2 и попытался запустить через него запрос, но получил тот же результат. Единственная разница заключалась в том, что для выхода из строя потребовалось значительно (в 10 раз) больше времени :-). - person Tomas Babic; 10.08.2012

У меня такая же проблема. Я решил это, временно удалив эти строки из моего .gitconfig:

[http]
    proxy = http://user:[email protected]:8080

Вместо этого используйте следующую команду:

export http_proxy=http://user:[email protected]:8080
person Marc de Verdelhan    schedule 16.12.2013