web-dev-qa-db-fra.com

Problème GIT_DISCOVERY_ACROSS_FILESYSTEM lors de l'utilisation du terminal et de MacFusion

J'utilise MacFusion avec OSXFuse (similaire à MacFuse) pour monter mon serveur via SSH sur ma machine de bureau. Lorsque je cd dans mon répertoire de travail Rails sur le serveur, je ne vois aucune information git dans mon invite zsh. Si j'essaie une origine git pull, j'obtiens le message d'erreur suivant:

fatal: Not a git repository (or any parent up to mount parent /Volumes)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set)

Je sais que je peux ssh sur le serveur mais ne perdrais-je pas alors l'autocorrection et l'historique zsh? Ne serais-je pas également obligé de configurer textmate et d'autres logiciels pour utiliser ssh? Et n'aurais-je pas besoin d'un bureau à distance pour installer les DMG, etc.? Tout cela semble un peu compliqué.

Y a-t-il une meilleure façon de faire ce que je veux faire? Sinon, existe-t-il un moyen d'activer GIT_DISCOVERY_ACROSS_FILESYSTEM?

PS - MacFusion peut également monter le serveur via FTP - serait-ce préférable à SSH?

39
Ribena

Allez-vous vers un répertoire qui se trouve dans votre arbre de travail? Si la racine de votre point de montage ssh n'inclut pas le répertoire .git, alors zsh ne pourra pas trouver les informations git. Assurez-vous de monter quelque chose qui inclut la racine du dépôt.

Quant à GIT_DISCOVERY_ACROSS_FILESYSTEM, il ne fait pas ce que vous voulez. Par défaut, Git s'arrêtera aux limites du système de fichiers. Si vous activez cela (et c'est juste une var env), alors git traversera la frontière du système de fichiers et continuera à chercher. Cependant, cela n'est presque jamais utile, car vous impliqueriez que vous avez un répertoire .git sur votre machine locale qui est en quelque sorte destiné à gérer une arborescence de travail qui comprend partiellement un montage sshfs. Cela n'a pas beaucoup de sens.

29
Lily Ballard

J'ai eu cette erreur jusqu'à ce que je réalise que je n'avais pas initialisé un référentiel Git dans ce dossier, sur une machine vagabonde montée.

J'ai donc tapé git init puis git a fonctionné.

28
Kirkland

Vous obtiendrez également ceci si git n'a pas les autorisations pour lire les fichiers de configuration. Il montera simplement dans l'arborescence hiérarchique jusqu'à ce qu'il ait besoin de traverser les systèmes de fichiers.

3
Dror

Mon problème était que je n'étais pas dans le bon répertoire git que je viens de cloner.

2
M.C.

En venant ici du premier hit de Google:

Vous pouvez désactiver le comportement ET et l'avertissement en exportant GIT_DISCOVERY_ACROSS_FILESYSTEM=1.

Sur heroku, si vous heroku config:set GIT_DISCOVERY_ACROSS_FILESYSTEM=1 L'avertissement disparaîtra.

C'est probablement parce que vous construisez une gemme à partir de la source et que le gemspec se décompose en git, comme beaucoup le font aujourd'hui. Ainsi, vous obtiendrez toujours l'avertissement fatal: Not a git repository (or any of the parent directories): .git mais l'adressage est pour un autre jour :)

Ma réponse est un doublon de: - commentaire problème GIT_DISCOVERY_ACROSS_FILESYSTEM lorsque vous travaillez avec un terminal et MacFusion

2
BF4

Essayez un protocole différent. git: // peut avoir des problèmes avec votre pare-feu, par exemple; essayez plutôt un clone git avec https:.

0
Bruce