public static IEnumerable <GitChangeInfo> GetChangedFiles(TextReader reader) { string line; while (null != (line = GetDiffTreeLine(reader))) { var change = GitChangeInfo.Parse(line); if (FileMode.GitLink == change.NewMode) { continue; } yield return(change); } }
public IEnumerable <IGitChangedFile> GetChangedFiles(string from, string to) { using (var diffOutput = CommandOutputPipe("diff-tree", "-r", "-M", from, to)) { string line; while (null != (line = diffOutput.ReadLine())) { var change = GitChangeInfo.Parse(line); if (FileMode.GitLink == change.NewMode) { continue; } yield return(BuildGitChangedFile(change)); } } }
private IGitChangedFile BuildGitChangedFile(GitChangeInfo change) { return change.ToGitChangedFile(_container.With((IGitRepository) this)); }
private IGitChangedFile BuildGitChangedFile(GitChangeInfo change) { return(change.ToGitChangedFile(_container.With((IGitRepository)this))); }
private IGitChangedFile BuildGitChangedFile(GitChangeInfo change) { var builder = change.Merge(_container.With("repository").EqualTo(this)); IGitChangedFile changeItem; try { changeItem = builder.GetInstance<IGitChangedFile>(change.Status); } catch(Exception e) { throw new Exception("Unable to handle change type " + change.Status + ".", e); } return changeItem; }