2016-12-03 5 views
0

J'essaie d'implémenter my own feature request à l'extension Visual Studio CommitFormatter, et j'ai besoin du correctif git diff pour cela. I pourrait utiliser libgit2sharp (que je m'attends à être facile), cependant, cela entraînera une dépendance supplémentaire. Un fardeau que je ne veux pas ajouter à l'extension, si ce n'est pas nécessaire.Comment récupérer le patch diff de Team Explorer?

Je pense qu'il est possible d'obtenir le même en utilisant l'une des APIs de Team Explorer, mais je suis un peu débordé par la quantité de bibliothèques que Visual Studio contient et ne trouve pas de bonnes pages MSDN pour cela .

Ce que je veux atteindre est d'obtenir le « patch diff » de la zone de mise en scène, la sortie qui git diff --cached "de la ligne de commande vous donne, mais en utilisant l'API Team Explorer. Tout comme ce que l » repo.Diff.Compare<Patch>(repo.Head.Tip.Tree, DiffTargets.Index)libgit2sharp serait vous donner.

Répondre

1

Il n'y a pas d'assemblage Microsoft.TeamExplorer qui fournit une diff git, public ou privé.

Selon la version, Team Explorer utilise soit LibGit2Sharp pour interagir avec le dépôt git (avant VS 2017) ou utilisations git (VS 2017).

Cependant, la version crée réellement des fichiers diff git. La vue de différence extrait les fichiers bruts du référentiel et calcule les différences et les affiche elle-même, elle n'utilise pas les fichiers de correctif en entrée ou en tant qu'étape intermédiaire.

Vous devez utiliser LibGit2Sharp ou appeler le git pour produire un diff.