Beispiel #1
0
        private void Init()
        {
            _gitRefs = Module.GetRefs(false, true);
            if (GitCommandHelpers.VersionInUse.SupportPushWithRecursiveSubmodulesCheck)
            {
                RecursiveSubmodules.Enabled       = true;
                RecursiveSubmodules.SelectedIndex = AppSettings.RecursiveSubmodules;
                if (!GitCommandHelpers.VersionInUse.SupportPushWithRecursiveSubmodulesOnDemand)
                {
                    RecursiveSubmodules.Items.RemoveAt(2);
                }
            }
            else
            {
                RecursiveSubmodules.Enabled       = false;
                RecursiveSubmodules.SelectedIndex = 0;
            }

            _currentBranchName = Module.GetSelectedBranch();

            // refresh registered git remotes
            _gitRemoteController.LoadRemotes();
            BindRemotesDropDown(null);

            UpdateBranchDropDown();
            UpdateRemoteBranchDropDown();

            Push.Focus();

            if (AppSettings.AlwaysShowAdvOpt)
            {
                ShowOptions_LinkClicked(null, null);
            }
        }
Beispiel #2
0
        private void Initialize(string preselectRemote = null)
        {
            // refresh registered git remotes
            _gitRemoteController.LoadRemotes(true);

            InitialiseTabRemotes(preselectRemote);
            InitialiseTabBehaviors();
        }
        public IEnumerable <Match> ParseRemotes(IGitRemoteController remoteController)
        {
            IList <Match> allMatches = new List <Match>();

            if (RemoteSearchPattern.IsNullOrWhiteSpace() || RemoteSearchPatternRegex.Value == null)
            {
                allMatches.Add(null);
            }
            else
            {
                IList <string> remoteUrls = new List <string>();

                remoteController.LoadRemotes(loadDisabled: false);

                IEnumerable <GitRemote> matchingRemotes = GetMatchingRemotes(remoteController.Remotes);

                foreach (GitRemote remote in matchingRemotes)
                {
                    if (RemoteSearchInParts.Contains(RemotePart.URL))
                    {
                        if (remote.Url.IsNotNullOrWhitespace())
                        {
                            remoteUrls.Add(remote.Url.ToLower());
                        }
                    }
                    if (RemoteSearchInParts.Contains(RemotePart.PushURL))
                    {
                        if (remote.PushUrl.IsNotNullOrWhitespace())
                        {
                            remoteUrls.Add(remote.PushUrl.ToLower());
                        }
                    }
                }

                foreach (string url in remoteUrls.Distinct())
                {
                    MatchCollection matches = RemoteSearchPatternRegex.Value.Matches(url);
                    for (var i = 0; i < matches.Count; i++)
                    {
                        Match match = matches[i];
                        if (match.Success)
                        {
                            allMatches.Add(match);
                        }
                    }
                }
            }

            return(allMatches);
        }
Beispiel #4
0
        private void BindRemotesDropDown(string selectedRemoteName)
        {
            // refresh registered git remotes
            _gitRemoteController.LoadRemotes(false);

            _NO_TRANSLATE_Remotes.Sorted     = false;
            _NO_TRANSLATE_Remotes.DataSource = new[] { new GitRemote {
                                                           Name = AllRemotes
                                                       } }.Union(_gitRemoteController.Remotes).ToList();
            _NO_TRANSLATE_Remotes.DisplayMember = "Name";
            _NO_TRANSLATE_Remotes.SelectedIndex = -1;
            ComboBoxHelper.ResizeComboBoxDropDownWidth(_NO_TRANSLATE_Remotes, AppSettings.BranchDropDownMinWidth, AppSettings.BranchDropDownMaxWidth);

            if (selectedRemoteName.IsNullOrEmpty())
            {
                selectedRemoteName = Module.GetSetting(string.Format(SettingKeyString.BranchRemote, _branch));
            }

            var currentBranchRemote = _gitRemoteController.Remotes.FirstOrDefault(x => x.Name.Equals(selectedRemoteName, StringComparison.OrdinalIgnoreCase));

            if (currentBranchRemote != null)
            {
                _NO_TRANSLATE_Remotes.SelectedItem = currentBranchRemote;
            }
            else if (_gitRemoteController.Remotes.Any())
            {
                // we couldn't find the default assigned remote for the selected branch
                // it is usually gets mapped via FormRemotes -> "default pull behavior" tab
                // so pick the default user remote
                _NO_TRANSLATE_Remotes.SelectedIndex = 1;
            }
            else
            {
                _NO_TRANSLATE_Remotes.SelectedIndex = 0;
            }
        }
        public void LoadRemotes_should_not_throw_if_module_is_null()
        {
            _module = null;

            ((Action)(() => _controller.LoadRemotes(true))).ShouldNotThrow();
        }