Frage

Ich möchte git in Produktions-Pipeline integrieren 3dsmax-Dateien zu inszenieren. Während es in Ordnung zu Arbeit mit git durch TortoiseGit ist, würde Ich mag mit ihm von der MaxScript zu kommunizieren, um benutzerdefinierte Menübefehle 3dsmax hinzuzufügen.

Should I Parsen git status Ausgabetext Ordner-Status zu bestimmen oder soll ich etwas Verpackung Tool verwenden, um richtig mit git kommunizieren?

Ich war über gitsharp denken, da es einfach ist, zu nennen dotNet von MaxScript Objekte, aber ich habe keine externen dotNet Programme verwenden.

War es hilfreich?

Lösung

Mein eigener Versuch, dies zu lösen führte git status in Parsen. Scheint, sauberer und einfacher zu implementieren. Auf der anderen Seite i'am forword suchen eine spezielle gestaltete XML-Datei zu erstellen, um die benötigten Informationen in einer „sauberen“ Weg zu erhalten.

Andere Tipps

Da git Version 1.7.0 gibt es für --porcelain eine git status Option gewesen. Die Ausgabe von:

git status --porcelain

... ist für die Verwendung von Skripten entwickelt - eine kompakte Darstellung des Ausgangs, dessen Format wird übergreifend konsistente Versionen bleiben. Als der Mann Seite sagt:

  

Porzellan Format

     

Das Porzellan-Format ist ähnlich das kurze Format, aber garantiert nicht Änderung in eine rückwärts-inkompatible Weise zwischen git Versionen oder basierend auf Benutzerkonfiguration.          Dies macht es ideal für durch Skripte parsen. Die Beschreibung des Kurzformat oben beschrieben, auch das Porzellan-Format, mit einigen Ausnahmen:

     
      
  1. Der color.status Konfiguration des Benutzers nicht eingehalten wird; Farbe wird immer aus.
  2.   
  3. Die Konfiguration status.relativePaths des Benutzers wird nicht eingehalten; gezeigt Wege werden immer in das Repository root relativ sein.
  4.   
     

Es gibt auch ein alternatives -Z-Format für die Maschinen Parsing empfohlen. In diesem Format ist das Statusfeld die gleiche, aber einige andere Dinge zu ändern. Zunächst wird der -> entfällt          von Umbenennungseinträgen und die Feldreihenfolge umgekehrt wird (zum Beispiel von -> nach wird nach aus). Zweitens wird ein NUL (ASCII 0) folgt jedem Dateinamen ersetzt Raum als Feldseparator          und das abschließende Newline (sondern ein Raum trennt noch das Statusfeld aus dem ersten Dateinamen). Drittens Dateinamen Sonderzeichen enthalten, sind nicht speziell          formatiert ist; keine Angabe oder Backslash-escaping durchgeführt wird.

So, wie das sagt, dass Sie auch in Betracht ziehen mit:

git status -z

... für ein noch robustere Ausgabeformat.

git enthält in der Regel „Porzellan“, High Level-Befehle für die tägliche Interaktion mit dem Benutzer konzipiert und „Sanitär“, die niedrigen Level-Befehle sind, die einfach haben, stabile Schnittstellen zu mehr Porzellan zu bauen. Sie können eine Liste in der git Manpage finden. Um die Verwendung sergo dem Beispiel ist git ls-files die sanitären Anlagen für git status. Wickeln der Sanitär ist einfacher und sicherer als das Porzellan, obwohl es einige Rätsel um herauszufinden, können verlangen, was von Sanitär-Set Karten, was Porzellan.

Ich habe git ls-files entdeckt und ich bin total zufrieden mit seinem Ausgabeformat. git status war zu menschlich-orientiert für das Parsen.

Ich würde Mercurial zu git mit seinem klaren Status Befehl bevorzugen, aber mit großen binären Dateien scheint es, dass git funktioniert besser für mich.

Ich weiß nicht, nichts über maxscript aber wenn Sie herausfinden, wie Baugruppen nennen .net dann können Sie gitsharp verwenden, und ich denke, es wäre die beste und einfachste Option sein!

hat einen Blick auf den Unit-Tests der gitsharp API. sie zeigen, wie der Status und andere hochrangige Operationen wie begehen, Schaltzweige zu bekommen, Check-out, sehen Veränderungen von einem Commit und so weiter.

- henon

Eine Menge von max verwendet bereits .NET-Assemblies. Das sollte die einfachste Sache zu entwickeln auf. Neben Text-Parsing .... ist so zerbrechlich. Ich würde nur vergessen, über Text-Parsing.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top