Comment Git-Ignorer les liens symboliques sur un module Magento installé par le compositeur

magento.stackexchange https://magento.stackexchange.com/questions/4641

  •  16-10-2019
  •  | 
  •  

Question

J'installer des modules à l'aide composer.phar.

Cela crée des fichiers liens symboliques dans publichtml/app/code/community (par exemple) avec une cible à vendor/themodule....

Dans mon .gitignore j'exclu le répertoire des fournisseurs - mais les liens serait bien sûr encore jusqu'à la fin dans le git

.

Y at-il un facile façon d'exclure automically ces liens? (Autre que l'ajout de tout manuellement à la .gitignore)

Je dois dire que j'ai quelques modules de require-dev qui ne devrait pas se retrouver sur le serveur final -. Afin d'avoir ces liens il y aurait au moins pas si gentil

Était-ce utile?

La solution

Le meilleur que je suis venu avec était en cours d'exécution après ce compositeur d'installation / mise à jour

$ find * -type l -not -exec grep -q "^{}$" .gitignore \; -print >> .gitignore

La commande doit être exécutée dans le répertoire racine git. Il ajoute tous les liens symboliques dans le fichier .gitignore qui ne sont pas déjà là.

Autres conseils

Cette méthode ne fait qu'ajouter des liens symboliques trassez peut donc être répétée sans ajouter les doublons, les liens symboliques qui sont ou qui sont sous-modules déjà ignorés, ou intentionnellement objet d'un suivi des liens symboliques.

for f in $(git status --porcelain | grep '^??' | sed 's/^?? //'); do
    test -L "$f" && echo $f >> .gitignore;
    test -d "$f" && echo $f\* >> .gitignore;
done

Aujourd'hui, il y a une option pour cela dans le programme d'installation du compositeur. Il suffit de définir extra.auto-add-fichiers-à-gitignore https://github.com/magento-hackathon/magento-composer-installer/blob/master/README.md#auto-add-files-to-gitignore

La solution combinée de @ColinM et @Vinai qui fonctionne pour moi

for f in $(git status --porcelain | grep '^??' | sed 's/^?? //'); do
    if test -L "$f"
    then
        test -L "$f" && echo $f >> .gitignore;
    elif test -d "$f"
    then
        find ${f%/} -type l -not -exec grep -q "^{}$" .gitignore \; -print >> .gitignore
    fi
done
Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top