Exemplo n.º 1
0
 /// <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();
 }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
Arquivo: Status.cs Projeto: shoff/ngit
		/// <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());
		}