Question

J'ai quelques éléments de shell configurés qui définissent dynamiquement les alias en fonction du type de référentiel VC que contient CWD - ainsi, par exemple, "d" exécute "svn diff" ou "git diff", selon. (Basé sur cet article de blog . , si quelqu'un est intéressé ...)

J'aimerais définir certains alias différemment selon que je suis dans un référentiel git ou non. Existe-t-il un moyen facile de faire la différence entre les deux?

Était-ce utile?

La solution

Vous devez être prudent lorsque vous décidez quels référentiels sont exactement des référentiels git-svn. Un référentiel peut contenir plusieurs référentiels svn.

La solution de

Kafka ne fonctionnera que si le référentiel svn a été cloné avec l'option -s ou --std-layout, dans laquelle est en réalité une branche trunk .

La réponse de Codelogic ne fonctionnera que s’il existe un référentiel svn appelé svn - rien n’exige que ce soit vrai.

Le moyen le plus simple de vérifier si est un svn-remote dans la configuration est:

$ git config --get-regexp ^svn-remote

Cela trouvera n'importe quel référentiel configuré git-svn, quel que soit leur nom. Il sortira avec le statut 0 s'il y a une correspondance et 1 s'il n'y a pas de correspondance.

Mais cela ne signifie pas que le référentiel svn est vraiment utilisé. Il se peut également que quelqu'un ait importé un référentiel svn, mais qu'il l'utilise en tant que sous-module ou en tant que fusion de sous-arborescence, voire même pas du tout. Si les métadonnées du référentiel git-svn ont été activées, vous pouvez voir si une révision svn a été utilisée dans le HEAD actuel en utilisant quelque chose comme ceci:

$ git rev-list -1 --grep='git-svn-id' HEAD

Mais c'est peut-être un peu trop compliqué. Vous décidez.

Autres conseils

Vous pouvez probablement utiliser le résultat de la commande git config pour différencier un repo git et git-svn.

git config --get svn-remote.svn.url

devrait renvoyer l'URL svn en cours de synchronisation, s'il en existe une.

Il existe également une branche appelée trunk et une branche appelée trunk @ [REV]. Cependant, je pense que l’approche codelogics est plus facile et plus propre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top