Browse Source

Added recursive submode commands. When cloning a submodule containing nested submodules, all nested submodules can be initialized. There are also recursive initialize, update and synchronize commands added to the submodule menu.

Added checkout branch to the revision graph context menu.
LibGit2Sharp
Henk Westhuis 16 years ago
parent
commit
8af1e04e28
  1. 56
      GitUI/Browse.Designer.cs
  2. 6
      GitUI/Browse.cs
  3. 10
      GitUI/FormGitIgnore.cs
  4. 10
      GitUI/FormMailMap.cs
  5. 2
      GitUI/Resources/ChangeLog.txt
  6. 12
      GitUI/RevisionGrid.Designer.cs
  7. 40
      GitUI/RevisionGrid.cs

56
GitUI/Browse.Designer.cs

@ -113,8 +113,11 @@
this.manageSubmodulesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator();
this.updateAllSubmodulesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.updateAllSubmodulesRecursiveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.initializeAllSubmodulesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.initializeAllSubmodulesRecursiveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.syncronizeAllSubmodulesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.synchronizeAlSubmodulesRecursiveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator10 = new System.Windows.Forms.ToolStripSeparator();
this.openSubmoduleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator();
@ -137,9 +140,7 @@
this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.gitItemBindingSource = new System.Windows.Forms.BindingSource(this.components);
this.gitRevisionBindingSource = new System.Windows.Forms.BindingSource(this.components);
this.updateAllSubmodulesRecursiveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.initializeAllSubmodulesRecursiveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.synchronizeAlSubmodulesRecursiveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator14 = new System.Windows.Forms.ToolStripSeparator();
this.splitContainer2.Panel1.SuspendLayout();
this.splitContainer2.Panel2.SuspendLayout();
this.splitContainer2.SuspendLayout();
@ -935,10 +936,11 @@
this.manageSubmodulesToolStripMenuItem,
this.toolStripSeparator8,
this.updateAllSubmodulesToolStripMenuItem,
this.updateAllSubmodulesRecursiveToolStripMenuItem,
this.initializeAllSubmodulesToolStripMenuItem,
this.initializeAllSubmodulesRecursiveToolStripMenuItem,
this.syncronizeAllSubmodulesToolStripMenuItem,
this.toolStripSeparator14,
this.updateAllSubmodulesRecursiveToolStripMenuItem,
this.initializeAllSubmodulesRecursiveToolStripMenuItem,
this.synchronizeAlSubmodulesRecursiveToolStripMenuItem,
this.toolStripSeparator10,
this.openSubmoduleToolStripMenuItem});
@ -965,6 +967,13 @@
this.updateAllSubmodulesToolStripMenuItem.Text = "Update all submodules";
this.updateAllSubmodulesToolStripMenuItem.Click += new System.EventHandler(this.updateAllSubmodulesToolStripMenuItem_Click);
//
// updateAllSubmodulesRecursiveToolStripMenuItem
//
this.updateAllSubmodulesRecursiveToolStripMenuItem.Name = "updateAllSubmodulesRecursiveToolStripMenuItem";
this.updateAllSubmodulesRecursiveToolStripMenuItem.Size = new System.Drawing.Size(268, 22);
this.updateAllSubmodulesRecursiveToolStripMenuItem.Text = "Update all submodules recursive";
this.updateAllSubmodulesRecursiveToolStripMenuItem.Click += new System.EventHandler(this.updateAllSubmodulesRecursiveToolStripMenuItem_Click);
//
// initializeAllSubmodulesToolStripMenuItem
//
this.initializeAllSubmodulesToolStripMenuItem.Name = "initializeAllSubmodulesToolStripMenuItem";
@ -972,6 +981,13 @@
this.initializeAllSubmodulesToolStripMenuItem.Text = "Initialize all submodules";
this.initializeAllSubmodulesToolStripMenuItem.Click += new System.EventHandler(this.initializeAllSubmodulesToolStripMenuItem_Click);
//
// initializeAllSubmodulesRecursiveToolStripMenuItem
//
this.initializeAllSubmodulesRecursiveToolStripMenuItem.Name = "initializeAllSubmodulesRecursiveToolStripMenuItem";
this.initializeAllSubmodulesRecursiveToolStripMenuItem.Size = new System.Drawing.Size(268, 22);
this.initializeAllSubmodulesRecursiveToolStripMenuItem.Text = "Initialize all submodules recursive";
this.initializeAllSubmodulesRecursiveToolStripMenuItem.Click += new System.EventHandler(this.initializeAllSubmodulesRecursiveToolStripMenuItem_Click);
//
// syncronizeAllSubmodulesToolStripMenuItem
//
this.syncronizeAllSubmodulesToolStripMenuItem.Name = "syncronizeAllSubmodulesToolStripMenuItem";
@ -979,6 +995,13 @@
this.syncronizeAllSubmodulesToolStripMenuItem.Text = "Synchronize all submodules";
this.syncronizeAllSubmodulesToolStripMenuItem.Click += new System.EventHandler(this.syncronizeAllSubmodulesToolStripMenuItem_Click);
//
// synchronizeAlSubmodulesRecursiveToolStripMenuItem
//
this.synchronizeAlSubmodulesRecursiveToolStripMenuItem.Name = "synchronizeAlSubmodulesRecursiveToolStripMenuItem";
this.synchronizeAlSubmodulesRecursiveToolStripMenuItem.Size = new System.Drawing.Size(268, 22);
this.synchronizeAlSubmodulesRecursiveToolStripMenuItem.Text = "Synchronize al submodules recursive";
this.synchronizeAlSubmodulesRecursiveToolStripMenuItem.Click += new System.EventHandler(this.synchronizeAlSubmodulesRecursiveToolStripMenuItem_Click);
//
// toolStripSeparator10
//
this.toolStripSeparator10.Name = "toolStripSeparator10";
@ -1138,26 +1161,10 @@
//
this.gitRevisionBindingSource.DataSource = typeof(GitCommands.GitRevision);
//
// updateAllSubmodulesRecursiveToolStripMenuItem
// toolStripSeparator14
//
this.updateAllSubmodulesRecursiveToolStripMenuItem.Name = "updateAllSubmodulesRecursiveToolStripMenuItem";
this.updateAllSubmodulesRecursiveToolStripMenuItem.Size = new System.Drawing.Size(268, 22);
this.updateAllSubmodulesRecursiveToolStripMenuItem.Text = "Update all submodules recursive";
this.updateAllSubmodulesRecursiveToolStripMenuItem.Click += new System.EventHandler(this.updateAllSubmodulesRecursiveToolStripMenuItem_Click);
//
// initializeAllSubmodulesRecursiveToolStripMenuItem
//
this.initializeAllSubmodulesRecursiveToolStripMenuItem.Name = "initializeAllSubmodulesRecursiveToolStripMenuItem";
this.initializeAllSubmodulesRecursiveToolStripMenuItem.Size = new System.Drawing.Size(268, 22);
this.initializeAllSubmodulesRecursiveToolStripMenuItem.Text = "Initialize all submodules recursive";
this.initializeAllSubmodulesRecursiveToolStripMenuItem.Click += new System.EventHandler(this.initializeAllSubmodulesRecursiveToolStripMenuItem_Click);
//
// synchronizeAlSubmodulesRecursiveToolStripMenuItem
//
this.synchronizeAlSubmodulesRecursiveToolStripMenuItem.Name = "synchronizeAlSubmodulesRecursiveToolStripMenuItem";
this.synchronizeAlSubmodulesRecursiveToolStripMenuItem.Size = new System.Drawing.Size(268, 22);
this.synchronizeAlSubmodulesRecursiveToolStripMenuItem.Text = "Synchronize al submodules recursive";
this.synchronizeAlSubmodulesRecursiveToolStripMenuItem.Click += new System.EventHandler(this.synchronizeAlSubmodulesRecursiveToolStripMenuItem_Click);
this.toolStripSeparator14.Name = "toolStripSeparator14";
this.toolStripSeparator14.Size = new System.Drawing.Size(265, 6);
//
// FormBrowse
//
@ -1315,5 +1322,6 @@
private System.Windows.Forms.ToolStripMenuItem updateAllSubmodulesRecursiveToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem initializeAllSubmodulesRecursiveToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem synchronizeAlSubmodulesRecursiveToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator14;
}
}

6
GitUI/Browse.cs

@ -41,10 +41,16 @@ namespace GitUI
Cursor.Current = Cursors.WaitCursor;
InternalInitialize(false);
RevisionGrid.Focus();
RevisionGrid.ChangedCurrentBranch += RevisionGrid_ChangedCurrentBranch;
indexWatcher.Changed += new EventHandler(indexWatcher_Changed);
indexWatcher.Reset();
}
void RevisionGrid_ChangedCurrentBranch(object sender, EventArgs e)
{
Initialize();
}
void indexWatcher_Changed(object sender, EventArgs e)
{
/*if (ToolStrip.InvokeRequired)

10
GitUI/FormGitIgnore.cs

@ -19,10 +19,12 @@ namespace GitUI
try
{
StreamReader re = File.OpenText(Settings.WorkingDir + ".gitignore");
GitIgnoreFile = re.ReadToEnd();
re.Close();
if (File.Exists(Settings.WorkingDir + ".gitignore"))
{
StreamReader re = File.OpenText(Settings.WorkingDir + ".gitignore");
GitIgnoreFile = re.ReadToEnd();
re.Close();
}
GitIgnoreEdit.Text = GitIgnoreFile;
}
catch

10
GitUI/FormMailMap.cs

@ -19,10 +19,12 @@ namespace GitUI
try
{
StreamReader re = File.OpenText(Settings.WorkingDir + ".mailmap");
MailMapFile = re.ReadToEnd();
re.Close();
if (File.Exists(Settings.WorkingDir + ".mailmap"))
{
StreamReader re = File.OpenText(Settings.WorkingDir + ".mailmap");
MailMapFile = re.ReadToEnd();
re.Close();
}
MailMapText.Text = MailMapFile;
}
catch

2
GitUI/Resources/ChangeLog.txt

@ -6,6 +6,8 @@ Version 1.68
Use Environment.NewLine instead of "\n".
Fixed a bug in default .gitignore file, it would show the [Db]ebug directory. It should be [Dd]ebug directory ofcourse.
Added Resharper directories to .gitignore file.
Added recursive submode commands. When cloning a submodule containing nested submodules, all nested submodules can be initialized. There are also recursive initialize, update and synchronize commands added to the submodule menu.
Added checkout branch to the revision graph context menu.
Version 1.67
Fixed exception when AutoCRLF is left empty

12
GitUI/RevisionGrid.Designer.cs

@ -66,6 +66,7 @@
this.Error = new System.Windows.Forms.PictureBox();
this.Loading = new System.Windows.Forms.PictureBox();
this.gitRevisionBindingSource = new System.Windows.Forms.BindingSource(this.components);
this.checkoutBranchToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
((System.ComponentModel.ISupportInitialize)(this.Revisions)).BeginInit();
this.CreateTag.SuspendLayout();
this.NoCommits.SuspendLayout();
@ -167,6 +168,7 @@
this.deleteBranchToolStripMenuItem,
this.toolStripSeparator2,
this.resetCurrentBranchToHereToolStripMenuItem,
this.checkoutBranchToolStripMenuItem,
this.checkoutRevisionToolStripMenuItem,
this.revertCommitToolStripMenuItem,
this.toolStripSeparator1,
@ -177,7 +179,7 @@
this.toolStripSeparator3,
this.filterToolStripMenuItem});
this.CreateTag.Name = "CreateTag";
this.CreateTag.Size = new System.Drawing.Size(224, 308);
this.CreateTag.Size = new System.Drawing.Size(224, 330);
this.CreateTag.Opening += new System.ComponentModel.CancelEventHandler(this.CreateTag_Opening);
//
// createTagToolStripMenuItem
@ -392,6 +394,13 @@
//
this.gitRevisionBindingSource.DataSource = typeof(GitCommands.GitRevision);
//
// checkoutBranchToolStripMenuItem
//
this.checkoutBranchToolStripMenuItem.Name = "checkoutBranchToolStripMenuItem";
this.checkoutBranchToolStripMenuItem.Size = new System.Drawing.Size(223, 22);
this.checkoutBranchToolStripMenuItem.Text = "Checkout branch";
this.checkoutBranchToolStripMenuItem.Click += new System.EventHandler(this.checkoutBranchToolStripMenuItem_Click);
//
// RevisionGrid
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -451,5 +460,6 @@
private System.Windows.Forms.ToolStripMenuItem deleteBranchToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem checkoutRevisionToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem orderRevisionsByDateToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem checkoutBranchToolStripMenuItem;
}
}

40
GitUI/RevisionGrid.cs

@ -14,6 +14,15 @@ namespace GitUI
{
public partial class RevisionGrid : UserControl
{
public event EventHandler ChangedCurrentBranch;
public virtual void OnChangedCurrentBranch()
{
if (ChangedCurrentBranch != null)
ChangedCurrentBranch(this, null);
}
IndexWatcher indexWatcher = new IndexWatcher();
public RevisionGrid()
@ -707,7 +716,6 @@ namespace GitUI
FormResetCurrentBranch frm = new FormResetCurrentBranch((GitRevision)RevisionList[LastRow]);
frm.ShowDialog();
RefreshRevisions();
}
}
@ -719,7 +727,7 @@ namespace GitUI
frm.Revision = (GitRevision)RevisionList[LastRow];
frm.ShowDialog();
RefreshRevisions();
OnChangedCurrentBranch();
}
}
@ -836,6 +844,7 @@ namespace GitUI
ToolStripDropDown tagDropDown = new ToolStripDropDown();
ToolStripDropDown branchDropDown = new ToolStripDropDown();
ToolStripDropDown checkoutBranchDropDown = new ToolStripDropDown();
foreach (GitHead head in revision.Heads)
{
@ -850,6 +859,10 @@ namespace GitUI
ToolStripItem toolStripItem = new ToolStripMenuItem(head.Name);
toolStripItem.Click += new EventHandler(toolStripItem_ClickBranch);
branchDropDown.Items.Add(toolStripItem);
toolStripItem = new ToolStripMenuItem(head.Name);
toolStripItem.Click +=new EventHandler(toolStripItem_ClickCheckoutBranch);
checkoutBranchDropDown.Items.Add(toolStripItem);
}
}
@ -857,7 +870,10 @@ namespace GitUI
deleteTagToolStripMenuItem.Visible = tagDropDown.Items.Count > 0;
deleteBranchToolStripMenuItem.DropDown = branchDropDown;
deleteBranchToolStripMenuItem.Visible = branchDropDown.Items.Count > 0;
deleteBranchToolStripMenuItem.Visible = branchDropDown.Items.Count > 0;
checkoutBranchToolStripMenuItem.DropDown = checkoutBranchDropDown;
checkoutBranchToolStripMenuItem.Visible = checkoutBranchDropDown.Items.Count > 0;
}
void toolStripItem_Click(object sender, EventArgs e)
@ -887,6 +903,18 @@ namespace GitUI
ForceRefreshRevisions();
}
void toolStripItem_ClickCheckoutBranch(object sender, EventArgs e)
{
ToolStripItem toolStripItem = sender as ToolStripItem;
if (toolStripItem == null)
return;
new FormProcess("checkout \"" + toolStripItem.Text + "\"");
ForceRefreshRevisions();
OnChangedCurrentBranch();
}
private void deleteTagToolStripMenuItem_Click(object sender, EventArgs e)
{
@ -900,6 +928,7 @@ namespace GitUI
{
new FormProcess("checkout \"" + RevisionList[LastRow].Guid + "\"");
ForceRefreshRevisions();
OnChangedCurrentBranch();
}
}
}
@ -916,5 +945,10 @@ namespace GitUI
}
private void checkoutBranchToolStripMenuItem_Click(object sender, EventArgs e)
{
}
}
}
Loading…
Cancel
Save