Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 02c0a2c

Browse files
committedMar 18, 2017
1 parent 6613802 commit 02c0a2c

15 files changed

+1297
-22
lines changed
 

‎GitCommands/Git/GitModule.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1341,7 +1341,7 @@ public string FindGitSuperprojectPath(out string submoduleName, out string submo
13411341
}
13421342
}
13431343

1344-
if (!string.IsNullOrEmpty(superprojectPath))
1344+
if (!string.IsNullOrEmpty(superprojectPath) && currentPath.StartsWith(superprojectPath))
13451345
{
13461346
submodulePath = currentPath.Substring(superprojectPath.Length).ToPosixPath();
13471347
var configFile = new ConfigFile(superprojectPath + ".gitmodules", true);

‎GitCommands/Git/GitVersion.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ public class GitVersion : IComparable<GitVersion>
1111
private static readonly GitVersion v1_7_11 = new GitVersion("1.7.11");
1212
private static readonly GitVersion v1_8_5 = new GitVersion("1.8.5");
1313
private static readonly GitVersion v2_0_1 = new GitVersion("2.0.1");
14+
private static readonly GitVersion v2_5_1 = new GitVersion("2.5.1");
15+
private static readonly GitVersion v2_7_0 = new GitVersion("2.7.0");
1416
private static readonly GitVersion v2_9_0 = new GitVersion("2.9.0");
1517

1618
public static readonly GitVersion LastSupportedVersion = v1_7_0;
@@ -69,6 +71,16 @@ public bool RaceConditionWhenGitStatusIsUpdatingIndex
6971
get { return this < v2_0_1; }
7072
}
7173

74+
public bool SupportWorktree
75+
{
76+
get { return this >= v2_5_1; }
77+
}
78+
79+
public bool SupportWorktreeList
80+
{
81+
get { return this >= v2_7_0; }
82+
}
83+
7284
public bool SupportMergeUnrelatedHistory
7385
{
7486
get { return this >= v2_9_0; }
@@ -147,7 +159,7 @@ private static int Compare(GitVersion left, GitVersion right)
147159
if (left == null && right == null) return 0;
148160
if (right == null) return 1;
149161
if (left == null) return -1;
150-
162+
151163
int compareA = left.a.CompareTo(right.a);
152164
if (compareA != 0) return compareA;
153165

‎GitUI/CommandsDialogs/FormBrowse.Designer.cs

Lines changed: 57 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎GitUI/CommandsDialogs/FormBrowse.cs

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
using GitCommands.Utils;
2121
using GitUI.CommandsDialogs.BrowseDialog;
2222
using GitUI.CommandsDialogs.BrowseDialog.DashboardControl;
23+
using GitUI.CommandsDialogs.WorktreeDialog;
2324
using GitUI.Hotkey;
2425
using GitUI.Plugin;
2526
using GitUI.Properties;
@@ -267,6 +268,19 @@ public FormBrowse(GitUICommands aCommands, string filter)
267268
SystemEvents.SessionEnding += (sender, args) => SaveApplicationSettings();
268269

269270
FillTerminalTab();
271+
ManageWorktreeSupport();
272+
}
273+
274+
private void ManageWorktreeSupport()
275+
{
276+
if (!GitCommandHelpers.VersionInUse.SupportWorktree)
277+
{
278+
createWorktreeToolStripMenuItem.Enabled = false;
279+
}
280+
if (!GitCommandHelpers.VersionInUse.SupportWorktreeList)
281+
{
282+
manageWorktreeToolStripMenuItem.Enabled = false;
283+
}
270284
}
271285

272286
private new void Translate()
@@ -2046,7 +2060,7 @@ private void WorkingdirDropDownOpening(object sender, EventArgs e)
20462060

20472061
}
20482062

2049-
private void SetWorkingDir(string path)
2063+
public void SetWorkingDir(string path)
20502064
{
20512065
SetGitModule(this, new GitModuleEventArgs(new GitModule(path)));
20522066
}
@@ -3673,5 +3687,23 @@ private void toolStripMenuItemReflog_Click(object sender, EventArgs e)
36733687
RefreshRevisions();
36743688
}
36753689
}
3690+
3691+
private void manageWorktreeToolStripMenuItem_Click(object sender, EventArgs e)
3692+
{
3693+
3694+
var formManageWorktree = new FormManageWorktree(UICommands);
3695+
formManageWorktree.ShowDialog(this);
3696+
}
3697+
3698+
private void createWorktreeToolStripMenuItem_Click(object sender, EventArgs e)
3699+
{
3700+
var formCreateWorktree = new FormCreateWorktree(UICommands);
3701+
var dialogResult = formCreateWorktree.ShowDialog(this);
3702+
if (dialogResult == DialogResult.OK && formCreateWorktree.OpenWorktree)
3703+
{
3704+
var newModule = new GitModule(formCreateWorktree.WorktreeDirectory);
3705+
SetGitModule(this, new GitModuleEventArgs(newModule));
3706+
}
3707+
}
36763708
}
36773709
}

‎GitUI/CommandsDialogs/FormBrowse.resx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,6 @@
151151
<value>352, 17</value>
152152
</metadata>
153153
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
154-
<value>25</value>
154+
<value>217</value>
155155
</metadata>
156156
</root>

0 commit comments

Comments
 (0)
Please sign in to comment.