git checkout kaal met submodules in post-receive

hoe kan ik een bare repository op mijn server uitchecken in een post-receive hook die submodules bevat?

Ik heb dit momenteel als een haak na ontvangst:

#!/bin/bash

# http://blog.ekynoxe.com/2011/10/22/git-post-receive-for-multiple-remote-branches-and-work-trees/
# post-receive hook that checks out development branch after a push to the bare
# repo

# paths must exist
livepath="/var/www/live"
devpath="/var/www/dev"

while read oldrev newrev ref
do
    branch=`echo $ref | cut -d/ -f3`

    #if [[ "master" == "$branch" ]]; then
    #   git --work-tree=$livepath checkout -f $branch
    #   echo 'Changes pushed live.'
    #fi
    if [[ "develop" == "$branch" ]]; then
        git --work-tree=$devpath checkout -f $branch
        echo 'Changes pushed to dev.'
    fi
done

Maar hiermee worden de submodules niet geïnitialiseerd.

Ik heb geprobeerd dit te doen voor het testen van de handleiding:

cd /var/www/dev
git --work-tree /var/www/dev --git/dir /git/myrepo.git submodule init
git --work-tree /var/www/dev --git/dir /git/myrepo.git submodule update

submodule update command failed with this error messages:

fatal: working tree '/var/www/dev' already exists.
Clone of 'https://github.com/yiisoft/yii.git' into submodule path 'yii' failed

That behavior is already (unanswered) questioned here: Git submodules with separate work_tree

Het zou ook goed zijn als het hen niet opnieuw zou initialiseren als ze aldaar zijn.

4

1 antwoord

--work-tree does not work well with submodules (becoz submodule need another repos, but it can't put in your worktree). You need a separate clone for that.

Maak gewoon een kloon, doe een cd + pull in je haak.

0
toegevoegd
Ik denk dat je gelijk hebt dat als een git-project submodules bevat, het niet werkt met de huidige versies van git. Ik deed gewoon wat je voorstelde en maakte een kloon, schakelde de git-variabelen uit en deed een git pull uit die repo. Toch denk ik dat het mogelijk moet zijn met de manier waarop ik het eerder probeerde.
toegevoegd de auteur kmindi, de bron