private void BranchesGrid_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            // track only “Deleted” column
            if (e.ColumnIndex != 0)
            {
                return;
            }

            BranchesGrid.CommitEdit(DataGridViewDataErrorContexts.Commit);
            lblStatus.Text = GetDefaultStatusText();
        }
Example #2
0
 private void Delete_Click(object sender, EventArgs e)
 {
     if (MessageBox.Show(this, "Are you sure to delete the selected branches?" + Environment.NewLine + "Only branches that are fully merged in '" + referenceBranch + "' will be deleted.", "Delete", MessageBoxButtons.YesNo) == DialogResult.Yes)
     {
         foreach (Branch branch in branches.Where(branch => branch.Delete))
         {
             branch.Result = gitCommands.RunGit("branch -d " + branch.Name).Trim();
         }
         BranchesGrid.Refresh();
     }
 }
Example #3
0
        private void BranchesGrid_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            // track only “Deleted” column, ignoring the checkbox header
            if (e.ColumnIndex != 0 || e.RowIndex == -1)
            {
                return;
            }

            BranchesGrid.CommitEdit(DataGridViewDataErrorContexts.Commit);
            checkBoxHeaderCell.Checked = _branches.All(b => b.Delete);
            lblStatus.Text             = GetDefaultStatusText();
        }
Example #4
0
        private void CheckBoxHeader_OnCheckBoxClicked(object sender, CheckBoxHeaderCellEventArgs e)
        {
            BranchesGrid.CommitEdit(DataGridViewDataErrorContexts.Commit);

            for (int i = 0; i < BranchesGrid.Rows.Count; i++)
            {
                DataGridViewRow          row  = BranchesGrid.Rows[i];
                DataGridViewCheckBoxCell cell =
                    (DataGridViewCheckBoxCell)row.Cells[nameof(_NO_TRANSLATE_deleteDataGridViewCheckBoxColumn)];
                cell.Value = e.Checked;
            }

            BranchesGrid.EndEdit();
        }
 private void Delete_Click(object sender, EventArgs e)
 {
     if (MessageBox.Show("Are you sure to delete the selected branches?" + Environment.NewLine + "Only branches that are not fully merged will be deleted.", "Delete", MessageBoxButtons.YesNo) == DialogResult.Yes)
     {
         foreach (Branch branch in Branches)
         {
             if (branch.Delete)
             {
                 branch.Result = GitCommands.RunGit(string.Concat("branch -d " + branch.Name)).Trim();
                 BranchesGrid.Refresh();
             }
         }
     }
 }
Example #6
0
 private void FindLargeFilesFunction()
 {
     try
     {
         var data = GetLargeFiles(_threshold);
         Dictionary <string, DateTime> revData = new Dictionary <string, DateTime>();
         foreach (var d in data)
         {
             string   commit = d.Commit.First();
             DateTime date;
             if (!revData.ContainsKey(commit))
             {
                 string revDate = _gitCommands.RunGitCmd(string.Format("show -s {0} --format=\"%ci\"", commit));
                 DateTime.TryParse(revDate, out date);
                 revData.Add(commit, date);
             }
             else
             {
                 date = revData[commit];
             }
             GitObject curGitObject;
             if (!_list.TryGetValue(d.SHA, out curGitObject))
             {
                 d.LastCommitDate = date;
                 _list.Add(d.SHA, d);
                 BranchesGrid.Invoke((Action)(() => { _gitObjects.Add(d); }));
             }
             else if (!curGitObject.Commit.Contains(commit))
             {
                 if (curGitObject.LastCommitDate < date)
                 {
                     curGitObject.LastCommitDate = date;
                 }
                 BranchesGrid.Invoke((Action)(() => { _gitObjects.ResetItem(_gitObjects.IndexOf(curGitObject)); }));
                 curGitObject.Commit.Add(commit);
             }
         }
         string objectsPackDirectory = _gitCommands.ResolveGitInternalPath("objects/pack/");
         if (Directory.Exists(objectsPackDirectory))
         {
             var packFiles = Directory.GetFiles(objectsPackDirectory, "pack-*.idx");
             foreach (var pack in packFiles)
             {
                 string[] objects = _gitCommands.RunGitCmd(string.Concat("verify-pack -v ", pack)).Split('\n');
                 pbRevisions.Invoke((Action)(() => pbRevisions.Value = pbRevisions.Value + (int)((_revList.Length * 0.1f) / packFiles.Length)));
                 foreach (var gitobj in objects.Where(x => x.Contains(" blob ")))
                 {
                     string[]  dataFields = gitobj.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                     GitObject curGitObject;
                     if (_list.TryGetValue(dataFields[0], out curGitObject))
                     {
                         int compressedSize = 0;
                         if (Int32.TryParse(dataFields[3], out compressedSize))
                         {
                             curGitObject.compressedSizeInBytes = compressedSize;
                             BranchesGrid.Invoke((Action)(() => { _gitObjects.ResetItem(_gitObjects.IndexOf(curGitObject)); }));
                         }
                     }
                 }
             }
         }
         pbRevisions.Invoke((Action)(() => pbRevisions.Hide()));
         BranchesGrid.Invoke((Action)(() => BranchesGrid.ReadOnly = false));
     }
     catch
     {
     }
 }
Example #7
0
        private void FindLargeFilesFunction()
        {
            try
            {
                var data = GetLargeFiles(_threshold);
                Dictionary <string, DateTime> revData = new Dictionary <string, DateTime>();
                foreach (var d in data)
                {
                    string   commit = d.Commit.First();
                    DateTime date;
                    if (!revData.ContainsKey(commit))
                    {
                        var args = new GitArgumentBuilder("show")
                        {
                            "-s",
                            commit,
                            "--format=\"%ci\""
                        };
                        string revDate = _gitCommands.GitExecutable.GetOutput(args);
                        DateTime.TryParse(revDate, out date);
                        revData.Add(commit, date);
                    }
                    else
                    {
                        date = revData[commit];
                    }

                    if (!_list.TryGetValue(d.SHA, out var curGitObject))
                    {
                        d.LastCommitDate = date;
                        _list.Add(d.SHA, d);
                        ThreadHelper.JoinableTaskFactory.Run(async() =>
                        {
                            await BranchesGrid.SwitchToMainThreadAsync();
                            _gitObjects.Add(d);
                        });
                    }
                    else if (!curGitObject.Commit.Contains(commit))
                    {
                        if (curGitObject.LastCommitDate < date)
                        {
                            curGitObject.LastCommitDate = date;
                        }

                        ThreadHelper.JoinableTaskFactory.Run(async() =>
                        {
                            await BranchesGrid.SwitchToMainThreadAsync();
                            _gitObjects.ResetItem(_gitObjects.IndexOf(curGitObject));
                        });
                        curGitObject.Commit.Add(commit);
                    }
                }

                string objectsPackDirectory = _gitCommands.ResolveGitInternalPath("objects/pack/");
                if (Directory.Exists(objectsPackDirectory))
                {
                    var packFiles = Directory.GetFiles(objectsPackDirectory, "pack-*.idx");
                    foreach (var pack in packFiles)
                    {
                        var args = new GitArgumentBuilder("verify-pack")
                        {
                            "-v",
                            pack
                        };

                        string[] objects = _gitCommands.GitExecutable.GetOutput(args).Split('\n');
                        ThreadHelper.JoinableTaskFactory.Run(async() =>
                        {
                            await pbRevisions.SwitchToMainThreadAsync();
                            pbRevisions.Value = pbRevisions.Value + (int)((_revList.Length * 0.1f) / packFiles.Length);
                        });
                        foreach (var gitObject in objects.Where(x => x.Contains(" blob ")))
                        {
                            string[] dataFields = gitObject.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                            if (_list.TryGetValue(dataFields[0], out var curGitObject))
                            {
                                if (int.TryParse(dataFields[3], out var compressedSize))
                                {
                                    curGitObject.CompressedSizeInBytes = compressedSize;
                                    ThreadHelper.JoinableTaskFactory.Run(async() =>
                                    {
                                        await BranchesGrid.SwitchToMainThreadAsync();
                                        _gitObjects.ResetItem(_gitObjects.IndexOf(curGitObject));
                                    });
                                }
                            }
                        }
                    }
                }

                ThreadHelper.JoinableTaskFactory.Run(async() =>
                {
                    await pbRevisions.SwitchToMainThreadAsync();
                    pbRevisions.Hide();
                });
                ThreadHelper.JoinableTaskFactory.Run(async() =>
                {
                    await BranchesGrid.SwitchToMainThreadAsync();
                    BranchesGrid.ReadOnly = false;
                });
            }
            catch
            {
            }
        }
Example #8
0
 public void LoadData()
 {
     BranchesGrid.DataBind();
 }