private void RemotesUpdated(object sender, EventArgs e)
{
EnableLoadSshButton();
var pushSettingValue = GitCommands.GitCommands.GetSetting("remote." + Remotes.Text + ".push");
if (PullFromRemote.Checked && !string.IsNullOrEmpty(pushSettingValue))
{
var values = pushSettingValue.Split(':');
RemoteBranch.Text = "";
if (values.Length > 0)
{
GitHead currentBranch = new GitHead(null, values[0], Remotes.Text);
Branch.Items.Add(currentBranch);
Branch.SelectedItem = currentBranch;
}
if (values.Length > 1)
RemoteBranch.Text = values[1];
return;
}
if (string.IsNullOrEmpty(Branch.Text))
{
// Doing this makes it pretty easy to accidentally create a branch on the remote.
// But leaving it blank will do the 'default' thing, meaning all branches are pushed.
// Solution: when pushing a branch that doesn't exist on the remote, ask what to do
GitHead currentBranch = new GitHead(null, _currentBranch, Remotes.Text);
Branch.Items.Add(currentBranch);
Branch.SelectedItem = currentBranch;
return;
}
BranchSelectedValueChanged(null, null);
}