/// <param name="diff"></param> public Status(IndexDiff diff) : base() { this.diff = diff; clean = diff.GetAdded().IsEmpty() && diff.GetChanged().IsEmpty() && diff.GetRemoved ().IsEmpty() && diff.GetMissing().IsEmpty() && diff.GetModified().IsEmpty() && diff .GetUntracked().IsEmpty() && diff.GetConflicting().IsEmpty(); }
public GitFileStatus GetFileStatusNoCache(string fileName) { //Debug.WriteLine(string.Format("===+ GetFileStatusNoCache {0}", fileName)); var fileNameRel = GetRelativeFileNameForGit(fileName); IndexDiff indexDiff = new IndexDiff(repository, Constants.HEAD, new FileTreeIterator(repository)); indexDiff.SetFilter(PathFilterGroup.CreateFromStrings(fileNameRel)); indexDiff.Diff(); if (indexDiff.GetModified().Count > 0) { return(GitFileStatus.Modified); } if (indexDiff.GetConflicting().Count > 0) { return(GitFileStatus.Conflict); } if (indexDiff.GetUntracked().Count > 0 || indexDiff.GetUntrackedFolders().Count > 0) { if (File.Exists(fileName)) { return(GitFileStatus.New); } return(GitFileStatus.NotControlled); } if (indexDiff.GetAdded().Count > 0) { return(GitFileStatus.Added); } if (!File.Exists(fileName)) { if (indexDiff.GetMissing().Count > 0) { return(GitFileStatus.Removed); } return(GitFileStatus.Deleted); } if (indexDiff.GetChanged().Count > 0) { return(GitFileStatus.Staged); } if (indexDiff.GetIgnoredNotInIndex().Count > 0) { return(GitFileStatus.Ignored); } return(GitFileStatus.Tracked); }
/// <returns> /// list of files that are in conflict. (e.g what you get if you /// modify file that was modified by someone else in the meantime) /// </returns> public virtual ICollection<string> GetConflicting() { return Sharpen.Collections.UnmodifiableSet(diff.GetConflicting()); }