Strict Standards: Non-static method themeGluedIdeas_Subtle::initOptions() should not be called statically in /home/riopro/www/blog.riopro.com.br/wp-content/themes/gluedideas_subtle/header.php on line 19
Riopro Blog - » Push do Git dando erro de Project description

Push do Git dando erro de Project description



Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Hoje eu experimentei um comportamento estranho do Git. Ao tentar empurrar minha cópia local para o nosso servidor central (é, parece Subversion, mas usamos o Gitosis aqui para facilitar as trocas de informação entre a equipe).

O erro que mostrava era Project description file hasn’t been set.

O problema

Sendo mais preciso, o erro inteiro era (alguns dados abaixo foram trocados por sigilo):


otavio@riopro25:~/ruby/minha_app (master) $ git push
Counting objects: 245, done.
Compressing objects: 100% (214/214), done.
Writing objects: 100% (222/222), 188.83 KiB, done.
Total 222 (delta 83), reused 0 (delta 0)
*** Project description file hasn't been set
error: hooks/update exited with error code 1
error: hook declined to update refs/heads/master
To git@git.SERVIDOR_LOCAL:minha_app.git
! [remote rejected] master -> master (hook declined)
error: failed to push some refs to 'git@git.SERVIDOR_LOCAL:minha_app.git'

Eu conseguia dar um git pull, o que não conseguia era empurrar minhas modificações.

O que mudei

Pois é, a gente sempre tem culpa em alguma coisa. Por mais que seja indiretamente. Ocorre que ontem eu modifiquei os direitos da pasta /var/git/repositories/minha_app.git/ em nosso servidor central. A pasta do repositório dava direito de acesso completo grupo git, leitura e execução ao usuário git e nenhum direito a outros usuários (era um access mode 750).

Eu necessitei mudar o direito de acesso para 755 para permitir que o Redmine mostre as alterações no repositório.

Ou seja, eu obviamente tinha modificado o relacionamento entre o meu desktop e o nosso servidor. Pesquisando na internet, vi que isso é um problema que ocorre muito em estações usando Windows Vista. Esse, porém, não é meu caso, onde tanto o desktop quanto o servidor são Ubuntu.

A solução

Antes de mais nada, faça backup de tudo, e não esqueça que eu avisei! Esse post não pretende e não é solução para todos os problemas, e pode não ser para o seu problema.

A solução acabou sendo bem simples. Consistia em se logar no servidor e dar um:


$ sudo su
# echo "Minha App" > /var/git/repositories/minha_app.git/description

E alterar o texto padrão (que é Unnamed repository; edit this file to name it for gitweb) para um texto descrevendo esse repositório. Só isso e tudo voltou ao normal.

Só para informação, a versão do meu git local é 1.5.6.3 e a do servidor 1.5.6.5.

Links relacionados:

http://gaarai.com/2009/02/21/git-project-description-file-hasnt-been-set/
http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way/

Informações e Links

Junte-se comentando, lendo o que os outros dizem ou colocando um link a partir do seu blog.


Outros Artigos

Strict Standards: Only variables should be assigned by reference in /home/riopro/www/blog.riopro.com.br/wp-includes/post.php on line 117
Migrando uma aplicação do Rails 1.2.6 para Rails 2.3.2

Strict Standards: Only variables should be assigned by reference in /home/riopro/www/blog.riopro.com.br/wp-includes/post.php on line 117
Github agora com issue tickets

Comente

Tire um tempo para comentar e nos dizer o que você acha. Alguns códigos HTML são permitidos para formatação.

Comentários dos Leitores


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /home/riopro/www/blog.riopro.com.br/wp-includes/formatting.php on line 82

Cara tu me quebro 1 galhão!
Agora tá show de bola meu git.

Muito Obrigado!