public void GetRemoteName() { Assert.AreEqual("foo", GitRefName.GetRemoteName("refs/remotes/foo/master")); Assert.AreEqual("", GitRefName.GetRemoteName("refs/tags/1.0.0")); var remotes = new[] { "foo", "bar" }; Assert.AreEqual("foo", GitRefName.GetRemoteName("foo/master", remotes)); Assert.AreEqual("", GitRefName.GetRemoteName("food/master", remotes)); Assert.AreEqual("", GitRefName.GetRemoteName("refs/tags/1.0.0", remotes)); }
private void Branches_SelectedIndexChanged(object sender, EventArgs e) { lbChanges.Text = ""; var branch = Branches.Text; if (branch.IsNullOrWhiteSpace() || !Remotebranch.Checked) { _remoteName = string.Empty; _localBranchName = string.Empty; _newLocalBranchName = string.Empty; } else { _remoteName = GitRefName.GetRemoteName(branch, Module.GetRemotes(false)); _localBranchName = Module.GetLocalTrackingBranchName(_remoteName, branch); var remoteBranchName = _remoteName.Length > 0 ? branch.Substring(_remoteName.Length + 1) : branch; _newLocalBranchName = string.Concat(_remoteName, "_", remoteBranchName); int i = 2; while (LocalBranchExists(_newLocalBranchName)) { _newLocalBranchName = string.Concat(_remoteName, "_", _localBranchName, "_", i.ToString()); i++; } } bool existsLocalBranch = LocalBranchExists(_localBranchName); rbResetBranch.Text = existsLocalBranch ? _rbResetBranchDefaultText : _createBranch.Text; branchName.Text = "'" + _localBranchName + "'"; txtCustomBranchName.Text = _newLocalBranchName; if (branch.IsNullOrWhiteSpace()) { lbChanges.Text = ""; } else { ThreadHelper.JoinableTaskFactory.RunAsync( async() => { await TaskScheduler.Default; var text = Module.GetCommitCountString(Module.GetCurrentCheckout(), branch); await this.SwitchToMainThreadAsync(); lbChanges.Text = text; }); } }