Question

Je voudrais intégrer git dans pipeline de production pour mettre en scène les fichiers 3dsmax. Alors qu'il est bien de travailler avec git par TortoiseGit, je voudrais communiquer avec elle de la Maxscript ajouter le menu des commandes personnalisées pour 3dsmax.

Dois-je analyser le texte de sortie git status pour déterminer l'état du dossier ou devrais-je utiliser un outil d'emballage pour communiquer correctement avec git?

Je pensais à gitsharp car il est facile d'appeler des objets dotNet de Maxscript, mais je ne l'ai pas utiliser des programmes dotNet externes.

Était-ce utile?

La solution

Ma propre tentative de résoudre ce statut a donné lieu à l'analyse syntaxique git. Semble plus propre et plus facile à mettre en œuvre. D'autre part i'am recherche forword pour créer un fichier XML conçu spécial pour obtenir les informations nécessaires d'une manière plus « propre ».

Autres conseils

Depuis la version 1.7.0 git, il a été une option pour --porcelain git status. La sortie de l':

git status --porcelain

... est conçu pour être utilisé par les scripts - une représentation compacte de la sortie dont le format reste cohérente entre les versions. Comme la page de manuel dit:

  

Format de porcelaine

     

Le format de porcelaine est similaire au format court, mais il est garanti de ne pas changer d'une manière incompatible entre en arrière versions git ou selon la configuration de l'utilisateur.          Cela le rend idéal pour l'analyse par des scripts. La description du format court ci-dessus décrit également le format de porcelaine, à quelques exceptions près:

     
      
  1. La configuration color.status de l'utilisateur n'est pas respectée; la couleur sera toujours éteint.
  2.   
  3. n'est pas respecté la configuration status.relativePaths de l'utilisateur; les chemins indiqués seront toujours par rapport à la racine du référentiel.
  4.   
     

Il y a aussi un format -Z de rechange recommandé pour l'analyse de la machine. Dans ce format, le champ d'état est le même, mais d'autres choses changent. Tout d'abord, le -> est omis          à partir des entrées renommer et l'ordre des champs est inversé (par exemple de -> pour devient à partir de). Deuxièmement, un NUL (ASCII 0) suit chaque nom de fichier, en remplacement de l'espace en tant que séparateur de champ          et le retour à la ligne de terminaison (mais un espace sépare encore le champ d'état à partir du premier nom de fichier). En troisième lieu, les noms de fichiers contenant des caractères spéciaux ne sont pas spécialement          formaté; ne cite ou barre oblique inverse-escaping est effectuée.

Alors, comme cela dit, vous pouvez également envisager d'utiliser:

git status -z

... pour un format de sortie encore plus robuste.

git contient en général « porcelaine », les commandes de haut niveau conçus pour une interaction quotidienne de l'utilisateur, et « plomberie » qui sont des commandes de bas niveau qui ont des interfaces simples et stables pour construire plus porcelaine. Vous pouvez trouver une liste dans l'homme git . Pour utiliser l'exemple de Sergo, git ls-files est la plomberie pour git status. Enroulant la plomberie est plus facile et plus sûr que la porcelaine, mais il peut exiger un peu déconcertant de savoir quel ensemble de cartes de plomberie à ce que la porcelaine.

Je l'ai découvert git ls-files et je suis tout à fait satisfait de son format de sortie. git status était trop orienté vers l'homme pour l'analyse syntaxique.

Je préférerais Mercurial à git avec sa commande d'état clair, mais avec de gros fichiers binaires, il semble que git fonctionne mieux pour moi.

Je ne sais pas, mais rien maxscript si vous comprenez comment appeler des assemblages .NET, vous pouvez utiliser gitsharp et je pense que ce serait la meilleure et la plus simple option!

consulter les tests unitaires de l'API gitsharp. ils montrent comment obtenir le statut et d'autres opérations de haut niveau tels que commis, les branches de commutation, la vérification, l'affichage des changements d'un engagement et ainsi de suite.

- Henon

Beaucoup de max utilise déjà des assemblages .NET. Cela devrait être la chose la plus facile à se développer sur. En plus de parsing .... est si fragile. Je voudrais simplement oublier parsing.

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