Pergunta

Gostaria de integrar o git ao pipeline de produção para preparar arquivos 3dsmax.Embora seja bom trabalhar com o git através do TortoiseGit, gostaria de me comunicar com ele a partir do Maxscript para adicionar comandos de menu personalizados ao 3dsmax.

Devo analisar git status texto de saída para determinar o status da pasta ou devo usar alguma ferramenta de empacotamento para me comunicar corretamente com o git?

Eu estava pensando sobre gitsharp já que é fácil chamar objetos dotNet do Maxscript, mas não usei programas dotNet externos.

Foi útil?

Solução

Minha própria tentativa de resolver isso resultou na análise do status do Git. Parece mais limpo e mais fácil de implementar. Por outro lado, estou procurando o Forword para criar um arquivo XML criado especial para obter as informações necessárias de uma maneira mais "limpa".

Outras dicas

Desde o Git versão 1.7.0, tem havido um --porcelain opção para git status. A saída de:

git status --porcelain

... foi projetado para uso por scripts - uma representação compacta da saída cujo formato permanecerá consistente nas versões. Como a página do homem diz:

Formato de porcelana

O formato de porcelana é semelhante ao formato curto, mas é garantido que não mude de maneira incompatível com versões entre as versões Git ou com base na configuração do usuário. Isso o torna ideal para analisar por scripts. A descrição do formato curto acima também descreve o formato de porcelana, com algumas exceções:

  1. A configuração da cor.status do usuário não é respeitada; A cor sempre estará desligada.
  2. A configuração do status.RelativePaths do usuário não é respeitada; Os caminhos mostrados sempre serão relativos à raiz do repositório.

Há também um formato -z alternativo recomendado para análise de máquinas. Nesse formato, o campo de status é o mesmo, mas algumas outras coisas mudam. Primeiro, o -> é omitido a partir de entradas de renomeação e a ordem de campo é revertida (por exemplo -> para se tornar para). Segundo, um NUL (ASCII 0) segue cada nome de arquivo, substituindo o espaço como um separador de campo e o término da Newline (mas um espaço ainda separa o campo de status do primeiro nome do arquivo). Terceiro, os nomes de arquivos que contêm caracteres especiais não são especialmente formatados; Nenhuma citação ou redução de barragem é realizada.

Então, como isso diz, você também pode considerar usar:

git status -z

... para um formato de saída ainda mais robusto.

git geralmente contém "porcelana", comandos de alto nível projetados para a interação diária do usuário, e "encanamento", que são comandos de baixo nível que possuem interfaces simples e estáveis ​​para construir mais porcelana.Você pode encontrar uma lista no página de manual do git.Para usar o exemplo de sergo, git ls-files é o encanamento para git status.Embrulhar o encanamento é mais fácil e seguro do que a porcelana, embora possa exigir um pouco de confusão para descobrir que conjunto de encanamento corresponde a qual porcelana.

Eu descobri git ls-files E estou totalmente satisfeito com seu formato de saída. git status era muito orientado para o ser humano para a análise.

eu preferiria Mercurial para git com seu comando de status claro, mas com grandes arquivos binários, parece que git Funciona melhor para mim.

Não sei nada sobre o MaxScript, mas se você descobrir como ligar para os conjuntos .NET, poderá usar o GitSharp e acho que seria a melhor e mais fácil opção!

Dê uma olhada nos testes de unidade da API GitSharp. Eles mostram como obter o status e outras operações de alto nível, como cometer, alternar ramos, verificar, visualizar mudanças de uma confirmação e assim por diante.

- Henon

Muitos max já estão usando conjuntos .NET. Essa deve ser a coisa mais fácil de se desenvolver. Além de analisar o texto .... é tão frágil. Eu apenas esqueceria de analisar o texto.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top