Esempio n. 1
0
        private void RetrieveRemoteRefs()
        {
            if (String.Equals(_retrievedRemotesFor, urlBox.Text, StringComparison.OrdinalIgnoreCase))
                return;

            branchBox.BeginUpdate();
            tagBox.BeginUpdate();

            try
            {
                branchBox.Items.Clear();
                tagBox.Items.Clear();

                if (!String.IsNullOrEmpty(urlBox.Text))
                {
                    _retrievedRemotesFor = urlBox.Text;

                    using (var client = GetService<IGitClientPool>().GetNoUIClient())
                    {
                        GitRemoteRefsArgs args = new GitRemoteRefsArgs();
                        args.ThrowOnError = false;
                        args.ThrowOnCancel = false;

                        GitRemoteRefsResult result;

                        if (GetRemoteRefs(urlBox.Text, GitRemoteRefType.All, args, out result))
                        {
                            foreach (var @ref in result.Items)
                            {
                                switch (@ref.Type)
                                {
                                    case GitRefType.Branch:
                                    case GitRefType.RemoteBranch:
                                        branchBox.Items.Add(@ref);

                                        if (String.Equals(@ref.ShortName, "master", StringComparison.OrdinalIgnoreCase))
                                            branchBox.SelectedIndex = branchBox.Items.Count - 1;
                                        break;

                                    case GitRefType.Tag:
                                        tagBox.Items.Add(@ref);
                                        break;
                                }
                            }
                        }
                    }
                }
            }
            finally
            {
                branchBox.EndUpdate();
                tagBox.EndUpdate();
            }
        }
Esempio n. 2
0
        private bool GetRemoteRefs(string remote, GitRemoteRefType types, GitRemoteRefsArgs args, out GitRemoteRefsResult result)
        {
            ProgressRunnerArgs pa = new ProgressRunnerArgs();
            pa.CreateLog = true;
            pa.TransportClientArgs = args;

            GitRemoteRefsResult resultTmp = null;

            bool ok = false;

            GetService<IProgressRunner>().RunModal(CommandStrings.ListingRemoteBranches, pa,
                delegate(object sender, ProgressWorkerArgs a)
                {
                    ok = a.Client.GetRemoteRefs(remote, types, args, out resultTmp);
                });

            result = resultTmp;
            return ok;
        }