Пример #1
0
        void AddStagedList(LibGit2Sharp.StatusEntry filestatus, SelectionRecover backup_selection)
        {
            FileStatus status = new FileStatus();
            status.Status = filestatus.State.ToString();
            status.FilePath = filestatus.FilePath;
            status.Display = status.FilePath;
            if ((filestatus.State == LibGit2Sharp.FileStatus.RenamedInIndex) |
                (filestatus.State == (LibGit2Sharp.FileStatus.RenamedInIndex | LibGit2Sharp.FileStatus.Staged)))
            {
                status.Display = string.Format(" {0} -> {1} [{2}%]",
                    filestatus.HeadToIndexRenameDetails.OldFilePath,
                    filestatus.HeadToIndexRenameDetails.NewFilePath,
                    filestatus.HeadToIndexRenameDetails.Similarity);
            }
            status.IsSelected = backup_selection.WasSelected(filestatus.FilePath);

            StagedList.Add(status);
            PropertyChanged(this, new PropertyChangedEventArgs("StagedList"));
        }
Пример #2
0
        void RefreshPending()
        {
            var filelist = git_.GetModifiedFileList();
            var modified_backup = new SelectionRecover(ModifiedList);
            var staged_backup = new SelectionRecover(StagedList);
            this.ModifiedList.Clear();
            this.StagedList.Clear();
            foreach (var filestatus in filelist)
            {
                switch (filestatus.State)
                {
                    case LibGit2Sharp.FileStatus.Ignored:
                        continue;

                    case LibGit2Sharp.FileStatus.Added:
                        goto case LibGit2Sharp.FileStatus.Staged;
                    case LibGit2Sharp.FileStatus.Staged:
                        AddStagedList(filestatus, staged_backup);
                        break;

                    case LibGit2Sharp.FileStatus.Added | LibGit2Sharp.FileStatus.Modified:
                        AddStagedList(filestatus, staged_backup);
                        AddModifiedList(filestatus, modified_backup);
                        break;
                    case LibGit2Sharp.FileStatus.Untracked:
                        goto case LibGit2Sharp.FileStatus.Modified;
                    case LibGit2Sharp.FileStatus.Modified:
                        AddModifiedList(filestatus, modified_backup);
                        break;

                    case LibGit2Sharp.FileStatus.Staged | LibGit2Sharp.FileStatus.Modified:
                        AddModifiedList(filestatus, modified_backup);
                        AddStagedList(filestatus, staged_backup);
                        break;

                    // renamed
                    case LibGit2Sharp.FileStatus.Staged | LibGit2Sharp.FileStatus.RenamedInIndex:
                        AddStagedList(filestatus, staged_backup);
                        break;

                    case LibGit2Sharp.FileStatus.RenamedInIndex:
                        AddStagedList(filestatus, staged_backup);
                        break;

                    case LibGit2Sharp.FileStatus.RenamedInIndex | LibGit2Sharp.FileStatus.Missing:
                        AddStagedList(filestatus, staged_backup);
                        AddModifiedList(filestatus, modified_backup);
                        break;

                    case LibGit2Sharp.FileStatus.RenamedInIndex | LibGit2Sharp.FileStatus.Modified:
                        AddStagedList(filestatus, staged_backup);
                        AddModifiedList(filestatus, modified_backup);
                        break;

                    case LibGit2Sharp.FileStatus.Staged | LibGit2Sharp.FileStatus.RenamedInIndex | LibGit2Sharp.FileStatus.Modified:
                        AddModifiedList(filestatus, modified_backup);
                        AddStagedList(filestatus, staged_backup);
                        break;

                    case LibGit2Sharp.FileStatus.Missing:
                        AddModifiedList(filestatus, modified_backup);
                        break;

                    case LibGit2Sharp.FileStatus.Removed:
                        AddStagedList(filestatus, staged_backup);
                        break;

                    default:
                        System.Diagnostics.Debug.Assert(false);
                        AddLog("Cannot execute for filestatus:" + filestatus.State.ToString());
                        break;
                }
            }

            if (ModifiedList.Count == 0 && StagedList.Count == 0)
            {
                AddLog("Nothing changed");
            }
        }
Пример #3
0
        void AddModifiedList(LibGit2Sharp.StatusEntry filestatus, SelectionRecover backup_selection)
        {
            FileStatus status = new FileStatus();
            status.Status = filestatus.State.ToString();
            status.FilePath = filestatus.FilePath;
            status.Display = status.FilePath;
            status.IsSelected = backup_selection.WasSelected(filestatus.FilePath);

            ModifiedList.Add(status);
            PropertyChanged(this, new PropertyChangedEventArgs("ModifiedList"));
        }