2012-03-14 4 views
4

У меня новый рабочий стол под управлением Ubuntu. Я проверил кучу git-репозиций с моего предыдущего компьютера на новый. Я могу с этим справиться без проблем. Однако, если я делаю git clone в новом репозитории (мы используем гитолит и gitflow), любой git push висит. Даже если я смогу успешно запустить проект rsynced, выполнение git clone проекта из гитолита будет успешным, но результат проекта я не могу нажать. Файлы .git/config идентичны.Git: не могу нажать вновь клонированные репозитории

Мой компьютер:

$ uname -a 
Linux ovid-desktop 3.0.0-16-generiC#29-Ubuntu SMP Tue Feb 14 12:48:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux 

Git толчок выход (или read the strace output):

GIT_TRACE=1 git push -vv origin users/ovid 
trace: built-in: git 'push' '-vv' 'origin' 'users/ovid' 
Pushing to gitolite:libs/perl/ThirdParty-Sync 
trace: run_command: 'ssh' 'gitolite' 'git-receive-pack '\''libs/perl/ThirdParty-Sync'\''' 
trace: run_command: 'pack-objects' '--all-progress-implied' '--revs' '--stdout' '--thin' '--delta-base-offset' '--progress' 
trace: exec: 'git' '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: 53, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (21/21), done. 
Writing objects: 100% (28/28), 2.59 KiB, done. 
Total 28 (delta 13), reused 0 (delta 0) 

И он висит навсегда после Total 28 (delta... линии.

Успешный толчок от того же проекта, но из rsynced каталога, выглядит следующим образом:

To gitolite:libs/perl/ThirdParty-Sync                             
    8c056a5..0321b35 users/ovid -> users/ovid 

Единственный симптом (? Отвлекающий маневр) Я думаю, из которых может быть связанно это:

$ ssh gitolite 
PTY allocation request failed on channel 0 

Я должен добавить -T, чтобы сделать эту работу.

Опять же, я могу успешно нажать, если я в каталоге rsynced ThirdPart-Sync. Только если я попытаюсь снова клонировать этот проект с сервера gitolite, это не сработает.

Обновление: Оказывается, он не вешается вечно. Через некоторое время после строки Total 28 я получаю следующее.

Write failed: Broken pipe 
fatal: The remote end hung up unexpectedly 
fatal: The remote end hung up unexpectedly 

Обновление Запуск Трассирование не говорит мне, что происходит. На репо я не могу нажать:

wait4(4122, Counting objects: 53, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (18/18), done. 
Writing objects: 100% (28/28), 11.62 KiB, done. 
    Total 28 (delta 3), reused 28 (delta 3) 
[{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 4122 
--- SIGCHLD (Child exited) @ 0 (0) --- 
read(3, 

Запуск Трассирование на репо я может толчок дает мне это примерно с той же месте:

write(9, "^0321b3501969dead78a83a0d3234724"..., 42) = 42 
write(9, "b9cbbc6cc37100baf706746205e7a4c4"..., 41) = 41 
close(9)        = 0 
wait4(4632, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 4632 
--- SIGCHLD (Child exited) @ 0 (0) --- 
read(6, "000e", 4)      = 4 
read(6, "unpack ok\n", 10)    = 10 
read(6, "001d", 4)      = 4 
read(6, "ok refs/heads/users/ovid\n", 25) = 25 
read(6, "0000", 4)      = 4 
futex(0x7f8a49c619d0, FUTEX_WAIT, 4631, NULL) = 0 
+0

Я всегда 'PTY запрос выделения не удался на канале 0': директива принудительной команды в вашем файле' ~/.ssh/authorized_keys' включает в себя 'no-tty' – VonC

+0

VonC: мы удалили no-pty и все еще не удалось. Похож на красную селедку. – Ovid

+0

Вы имеете в виду, что он не имеет никакого отношения к вашему текущему замораживаемому нажатию? – VonC

ответ

3

ОП Овидий заявил в комментарии

VonC: После того, как много черт, я перешел от ключа DSA SSH к rsa ключ SSH и все начали работать.

Гитолитская документация «how gitolite uses ssh» только упоминает rsa keys.
Таким образом, кажется безопасным продолжать использовать этот особый тип ключа.

Проверки полезность (в комплекте с gitoite) sshkeys-lint разобрать только для RSA (или ДСС)

1

Вы можете нажать любые сделок РЕПО на Gitolite ? Или только те, на которых вы не перешли?

Как насчет вашего ~/.gitconfig?

Если бы я был в вашей ситуации, я хотел бы попробовать две вещи:

  • Трассирование, чтобы выяснить, что мерзавец-тяни/SSH ждет дальше.

  • Используйте SSH ControlMaster/ControlPath SSH в ~/.ssh/config для создания общего SSH-соединения и попытайтесь нажать после запуска ssh -T gitolite.

+0

Я могу подтолкнуть все репозиции, которые я перепробовал. Я не могу нажать на то, что я клонировал прямо на этой коробке. My ~/.gitconfg довольно болотный стандарт. Он устанавливает цвета, мое имя пользователя/адрес электронной почты и пару псевдонимов, ни один из которых не конфликтует. Я попробую strace. – Ovid

+0

Я обновил свой запрос с помощью некоторой усеченной информации о strace, или вы могли увидеть полную неудачную попытку strit git на https://gist.github.com/2035495 – Ovid

1

Попробуйте следующие шаги:

$git pull 
    $git push origin branch 
+0

Уже пробовали. Переключение с dsa на rsa public ssh key исправлено. Не знаю, почему. – Ovid

0

попробуйте сравнить конфигурации в новых сделок РЕПО. Изменения по умолчанию между версиями git.