Necesita get los detalles de los files modificados en el método GitPull en Cake Script

Hola, estoy usando el método GitPull para llevar los cambios al Repositorio.

Referido desde el siguiente enlace

http://cakebuild.net/api/Cake.Git/GitAliases/CC1AE32F

Necesito get el logging de files actualizados mientras realizo el método GitPull.

¿Hay alguna forma de get esos detalles usando la página siguiente o sugerir alguna otra forma de realizar la acción anterior en el pastel?

http://cakebuild.net/dsl/git/

En primer lugar, una exención de responsabilidad debido a un problema anterior con fusiones en Cake.Git / Libgit2sharp, deberá actualizar a la versión 0.14.0 o posterior de Cake.Git para que esta respuesta funcione.

La forma más sencilla de get files de cambios de manera confiable independientemente de la fusión de avance rápido o no es:

  1. Obtener commit antes de tirar
  2. Hacer el tirón
  3. Si el repository no estaba actualizado, ejecute commit after pull
  4. Haz una diferencia entre antes y después de tirar

La manera Cake.Git de hacer esto sería

  1. GitLogTip
  2. GitPull
  3. Si pullResult . Status ! = GitMergeStatus . UpToDate luego GitLogTip
  4. GitDiff

Esto podría verse más o less a continuación

 #addin nuget:?package=Cake.Git&version=0.14.0 DirectoryPath repoDir = MakeAbsolute(Directory("./Cake_Git")); string name = "John Doe", email = "john@doe.com"; var beforePullCommit = GitLogTip(repoDir); var pullResult = GitPull(repoDir, name, email); if (pullResult.Status!=GitMergeStatus.UpToDate) { var afterPullCommit = GitLogTip(repoDir); var diff = GitDiff(repoDir, beforePullCommit.Sha, afterPullCommit.Sha); foreach(var file in diff) { Information("{0}", file); } } 

GitDiff devuelve un ICollection de GitDiffFile s que tiene estas properties.

 Name Value Summary Exists bool The file exists in the new side of the diff. OldExists bool The file exists in the old side of the diff. OldPath string The old path. Path string The new path. Status GitChangeKind The kind of change that has been done (added, deleted, modified ...). 

y tiene una anulación de ToString (), el resultado de esta secuencia de commands sería algo como esto

 Path: ReleaseNotes.md, OldPath: ReleaseNotes.md, Status: Modified, Exists: True, OldExists: True Path: src\Cake.Git\Cake.Git.csproj, OldPath: src\Cake.Git\Cake.Git.csproj, Status: Modified, Exists: True, OldExists: True Path: src\Cake.Git\GitMergeResult.cs, OldPath: src\Cake.Git\GitMergeResult.cs, Status: Modified, Exists: True, OldExists: True Path: src\Cake.Git\packages.config, OldPath: src\Cake.Git\packages.config, Status: Modified, Exists: True, OldExists: True Path: src\SolutionInfo.cs, OldPath: src\SolutionInfo.cs, Status: Modified, Exists: True, OldExists: True 

pero como es un object tipeado, se podría hacer mucho más programáticamente.

mientras se realiza el método GitPull.

Podrías probar después de un git pull (que es search más fusión), con (solución no Cake)

 git log --stat 

O, como se menciona con Fun with FETCH_HEAD

 git log --name-only ..FETCH_HEAD 

No veo esas opciones compatibles con el método Cake GitLog , por lo que puedes intentar al less analizar el resultado de:

 var result = GitLog("c:/temp/cake", 1); 

(esa es la última confluencia de fusión generada por git pull )