Gitolite gl-post-init Automação de Gancho

2

RESPOSTA POSTADA ABAIXO

Atualmente, estou no processo de configurar um servidor git / development local e encontrei um obstáculo com o gitolite post-hook.

Para dar uma visão geral do que estou fazendo atualmente.

Eu configurei um servidor local que contém um RAID10 de 4TB sendo usado como um repositório git, a máquina também deve ser usada como máquina de desenvolvimento local e para simplificar a manutenção Estou tentando automatizar o processo de criação do Apache Virtualhosts quando um novo repositório é criado via gitolite "git-post-init".

Espero conseguir isso clonando o ramo de software de um repositório (veja o código abaixo), adicionando a configuração do vache do apache e, em seguida, ligando-a simbolicamente a um diretório varrido do apache.

O processo quase parece estar correto, pois eu sou capaz de clonar o repositório adicionar alguns arquivos iniciais e criar o arquivo de configuração, mas quando eu tento fazer algum comando relacionado ao git no repositório eu sou apresentado com o seguinte erro

fatal: Not a git repository: '.'

Se eu entrar no repositório recém-clonado depois que o gancho for executado, eu posso puxar o status do repositório.

git status

O que funciona ... parece que, ao tentar fazer isso dentro do gancho, não.

Abaixo está o código que está sendo usado para o gancho com a configuração extra removida para encurtá-lo.

#!/bin/sh

# This will create an apache virtualhost file and store it in the
# repositories conf/reponame.conf directory and then symlink it to
# /home/git/apache/reponame.conf
#
# A new entry will then be created in the hosts file.

echo "Creating a new X Studios project"
echo "Git Project config v0.1 author Nickolas Whiting: Oct 20, 2011" 

REPO=$HOME/repos
REPO_PATH=$HOME/repos/$GL_REPO
cd $REPO
echo "Cloning repo into $REPO_PATH"
git clone $GL_REPO_BASE_ABS/$GL_REPO
cd $REPO/$GL_REPO
echo "Working in $PWD"
echo "Adding .gitignore file"
touch .gitignore
echo "removed for space" >> .gitignore
git add -u
echo "Commiting changes to repository"
git commit -m "Adding ignore file"
git push
echo "Adding branches"
git branch --track management origin/management
git branch --track design origin/design
git branch --track software origin/software
echo "Commiting new branches"
git add .
git commit -m "Inital Project Setup. Make sure you use the correct branch for what you are doing!"
git push
echo "Checking out the software branch"
git checkout software
echo "Creating Apache Virtualhost configuration"
echo "Removed for space" >> $REPO_PATH/conf/$GL_REPO.conf
echo "Creating symbolic link"
ln -s $REPO_PATH/$GL_REPO.conf $HOME/apache/$GL_REPO.conf
echo "Commiting changes to the repository"
echo "DONE"

Eu sou novo em escrever scripts de bash, então se algo estiver errado ou puder ser melhor, por favor me avise,

Obrigado pela ajuda!

RESPOSTA

Se alguém mais tiver esse problema

Aparentemente, quando rodando dentro de um gl hook, a variável GIT_DIR é definida como '.' (o que é aparente) definindo isto para o diretório .git do repositório resolve o problema

GIT_DIR=$PWD/.git

Espero que isso poupe as horas que perdi com isso!

    
por Nick 21.10.2011 / 17:00

1 resposta

0

Quando executado dentro de um gancho git, a variável GIT_DIR é definida como '.' (o que é aparente) definindo isto para o diretório .git do repositório resolve o problema

GIT_DIR=$PWD/.git
    
por 07.11.2011 / 16:58

Tags