2012-10-10 4 views
4

Что-то пошло не так. Позвольте мне дать задний план.Есть ли журнал активности git?

Сегодня я пытаюсь подтолкнуть к нашему серверу windows msysgit по умолчанию и получить dreaded error message duplicated everywhere in SO about pushing to non-bare. Я думал, что сообщение было странным, так как мой сервер должен был быть голым. И вчера он работал нормально.

Потом я заметил, что core.bare это, так или иначе, чтобы установить false! Это было репо с --bare, и в нем никогда не было папки «.git». И тогда я иду проверить, и вот она, папка .git, что для меня появилась из ниоткуда, к моему ужасу! Я спрашиваю единственного другого человека, который мог бы что-то там сделать, и, конечно же, он этого не сделал.

редактировать: Я только заметил, что это происходит только с master ветви и сервер .git, кажется, была создана на октябрь 1, которые могут быть правы, так как я не давите на master часто.

В папке есть 3gb и голой папке со всеми git-структурами рядом с призрачным .git, имеет 6gb. Хотя мой локальный .git имеет 16 gb, поэтому я не уверен, что там происходит ... Даже больше, я не могу проверить git log или git reflog. Либо установка горит до истины, либо false. Я получаю такую ​​же ошибку fatal: bad default revision 'HEAD'. И теперь я думаю, что уже пора рассмотреть how to recover the repo ...

Но прежде чем я пройти через все реставрационной догма, я задаюсь вопросом:

  • Есть ли какая-то мерзавца журнал активности поэтому я могут видеть все команды, выпущенные в git, и кем?

Не удалось найти что-либо подобное, и я боюсь, что нет.

ответ

3

Именно поэтому мы установили gitolite V3 (просто клонировать its repo и installing it как в this installation script) на нашем центральном сервере мерзавец репо.

Gitolite перехватит любые команды git, и (в дополнение к его функции primary authorization framework) запишет указанные команды в ~/.gitolite/logs/gitolite-log-xxx.

Вот выдержка из таких журналов:

2012-08-16.12:20:19  29507   system,/home/gitadmin/gitolite/bin/triggers/post-compile/update-git-configs,POST_COMPILE 
2012-08-16.12:20:19  29507   system,/home/gitadmin/gitolite/bin/triggers/post-compile/update-gitweb-access-list,POST_COMPILE 
2012-08-16.12:20:19  29507   system,/home/gitadmin/gitolite/bin/commands/access,%,gitweb,R,any 
2012-08-16.12:20:19  29507   system,/home/gitadmin/gitolite/bin/commands/git-config,-r,%,gitweb\. 
2012-08-16.12:20:19  29507   system,/home/gitadmin/gitolite/bin/triggers/post-compile/update-git-daemon-access-list,POST_COMPILE 
2012-08-16.12:20:20  29507   system,/home/gitadmin/gitolite/bin/commands/access,%,daemon,R,any 
2012-08-16.12:20:20  29507 END 
2012-08-20.07:39:12  17683 ssh  ARGV=gitoliteadm  SOC=git-upload-pack 'gitolite-admin' FROM=127.0.0.1 
2012-08-20.07:39:12  17683   access(gitolite-admin, gitoliteadm, R, 'any'),-> refs/.* 
2012-08-20.07:39:12  17683   trigger,Writable,access_1,ACCESS_1,gitolite-admin,gitoliteadm,R,any,refs/.* 
2012-08-20.07:39:12  17683 pre_git gitolite-admin gitoliteadm  R  any  -> refs/.* 
2012-08-20.07:39:12  17683   system,git,shell,-c,git-upload-pack '/home/gitadmin/repositories/gitolite-admin.git' 
2012-08-20.07:39:12  17683 END 
2012-08-16.12:20:19  29507   system,/home/gitadmin/gitolite/bin/triggers/post-compile/update-git-configs,POST_COMPILE 
2012-08-16.12:20:19  29507   system,/home/gitadmin/gitolite/bin/triggers/post-compile/update-gitweb-access-list,POST_COMPILE 
2012-08-16.12:20:19  29507   system,/home/gitadmin/gitolite/bin/commands/access,%,gitweb,R,any 
2012-08-16.12:20:19  29507   system,/home/gitadmin/gitolite/bin/commands/git-config,-r,%,gitweb\. 
2012-08-16.12:20:19  29507   system,/home/gitadmin/gitolite/bin/triggers/post-compile/update-git-daemon-access-list,POST_COMPILE 
2012-08-16.12:20:20  29507   system,/home/gitadmin/gitolite/bin/commands/access,%,daemon,R,any 
2012-08-16.12:20:20  29507 END 
2012-08-20.07:39:12  17683 ssh  ARGV=gitoliteadm  SOC=git-upload-pack 'gitolite-admin' FROM=127.0.0.1 
2012-08-20.07:39:12  17683   access(gitolite-admin, gitoliteadm, R, 'any'),-> refs/.* 
2012-08-20.07:39:12  17683   trigger,Writable,access_1,ACCESS_1,gitolite-admin,gitoliteadm,R,any,refs/.* 
2012-08-20.07:39:12  17683 pre_git gitolite-admin gitoliteadm  R  any  -> refs/.* 
2012-08-20.07:39:12  17683   system,git,shell,-c,git-upload-pack '/home/gitadmin/repositories/gitolite-admin.git' 
2012-08-20.07:39:12  17683 END 
+0

hmm ... Я забыл упомянуть, что это сервер Windows. возможно, с этим я могу убедить людей здесь, чтобы попытаться получить хотя бы VM ubuntu ...: P – cregox

+1

@Cawas, но вы можете установить Gitolite на windows: http://therightstuff.de/CommentView,guid,b969ea4d-8d2c-42af- 9806-de3631f4df68.aspx Говоря это, да, сервер git В Unix больше смысла. – VonC

+0

У меня все еще есть 2 открытых вопроса там @VonC ... Может быть, вы можете помочь! Знаете ли вы, что могло привести к тому, что сервер стал негладным, и почему я не могу увидеть reflog в любом из моих голых репозиториев? – cregox

1

вы можете использовать reflog, чтобы увидеть, как перемещаются ссылки, что регистрирует активность, которая иногда не видна из обычного git-журнала (например, сглаживание быстрой перемотки), но я не думаю, что это имеет значение в вашем случае.

Я считаю, что у вас есть структура, подобная этому (это рекомендуется поместить расширение .git на голое имя репо, поэтому его легко отличить): ../core.bare.git/, содержащий ветки, config , HEAD, hooks, info, objects и т. Д. ../core.bare.git/.git содержит свой собственный набор ветвей, config и т. Д. Я думаю, что вы репо на сервере полностью в порядке, вам просто нужно удалить. git и дважды проверьте, что файл конфигурации все еще говорит, что это голый репо.

+0

Хорошая идея о стандартах, но не большая проблема там.Хорошо, после удаления '.git' теперь я вижу« git log », и нажатие работает! Даже 'reflog' больше не приносит никаких ошибок ... Но это ничего не приносит! Такое странное поведение. И, хотя я предполагаю, что вы говорите *, нет такого «журнала активности» *, остается один неявный вопрос: что могло вызвать весь этот беспорядок? Как голый репо вдруг стал не голым ?! – cregox

+0

Я могу только предположить, что кто-то выпустил git init в неправильной папке - вот как вы его получили. –

+0

'git init' не будет работать в непустой папке. – cregox

Смежные вопросы