Exemplo n.º 1
0
        public CreateLocalBranchesForm(GitUIBaseEventArgs gitUiCommands)
        {
            InitializeComponent();

            m_gitUiCommands = gitUiCommands;
        }
Exemplo n.º 2
0
 public override bool Execute(GitUIBaseEventArgs gitUiCommands)
 {
     using (var frm = new StashPullRequestForm(gitUiCommands, base.Settings))
         frm.ShowDialog(gitUiCommands.OwnerForm);
     return(true);
 }
Exemplo n.º 3
0
        public BitbucketPullRequestForm(BitbucketPlugin plugin, ISettingsSource settings, GitUIBaseEventArgs gitUiCommands)
        {
            InitializeComponent();
            Translate();

            _settings = Settings.Parse(gitUiCommands.GitModule, settings, plugin);
            if (_settings == null)
            {
                MessageBox.Show(_yourRepositoryIsNotInBitbucket.Text);
                Close();
                return;
            }

            Load += BitbucketViewPullRequestFormLoad;
            Load += BitbucketPullRequestFormLoad;

            lblLinkCreatePull.Text = string.Format("{0}/projects/{1}/repos/{2}/pull-requests?create",
                                                   _settings.BitbucketUrl, _settings.ProjectKey, _settings.RepoSlug);
            toolTipLink.SetToolTip(lblLinkCreatePull, _linkLabelToolTip.Text);

            lblLinkViewPull.Text = string.Format("{0}/projects/{1}/repos/{2}/pull-requests",
                                                 _settings.BitbucketUrl, _settings.ProjectKey, _settings.RepoSlug);
            toolTipLink.SetToolTip(lblLinkViewPull, _linkLabelToolTip.Text);
        }
Exemplo n.º 4
0
 void gitUiCommands_PostBrowseInitialize(object sender, GitUIBaseEventArgs e)
 {
     UpdateGerritMenuItems(e);
 }
Exemplo n.º 5
0
        public ProxySwitcherForm(ProxySwitcherPlugin plugin, ISettingsSource settings, GitUIBaseEventArgs gitUiCommands)
        {
            InitializeComponent();
            Translate();

            Text         = _pluginDescription.Text;
            _plugin      = plugin;
            _settings    = settings;
            _gitCommands = gitUiCommands.GitModule;
        }
Exemplo n.º 6
0
 public abstract bool Execute(GitUIBaseEventArgs gitUiCommands);
Exemplo n.º 7
0
 public override bool Execute(GitUIBaseEventArgs gitUiArgs)
 {
     gitUiArgs.GitUICommands.StartSettingsDialog(this);
     return(false);
 }
Exemplo n.º 8
0
        public bool Execute(GitUIBaseEventArgs eventArgs)
        {
            IGitModule gitUiCommands = eventArgs.GitModule;
            var        ownerForm     = eventArgs.OwnerForm as IWin32Window;

            if (!gitUiCommands.IsValidGitWorkingDir(gitUiCommands.GitWorkingDir))
            {
                MessageBox.Show(ownerForm, "The current directory is not a valid git repository." + Environment.NewLine +
                                Environment.NewLine + "Gource can be only be started from a valid git repository.");
                return(false);
            }

            var pathToGource = Settings.GetSetting("Path to \"gource\"");

            if (!string.IsNullOrEmpty(pathToGource))
            {
                if (!File.Exists(pathToGource))
                {
                    if (MessageBox.Show(ownerForm,
                                        "Cannot find \"gource\" in the configured path: " + pathToGource +
                                        ".\n\n.Do you want to reset the configured path?", "Gource", MessageBoxButtons.YesNo) ==
                        DialogResult.Yes)
                    {
                        Settings.SetSetting("Path to \"gource\"", "");
                        pathToGource = Settings.GetSetting("Path to \"gource\"");
                    }
                }
            }

            if (string.IsNullOrEmpty(pathToGource))
            {
                if (MessageBox.Show(ownerForm,
                                    "There is no path to \"gource\" configured.\n\nDo you want to automaticly download \"gource\"?",
                                    "Download", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    var gourceUrl = SearchForGourceUrl();

                    if (string.IsNullOrEmpty(gourceUrl))
                    {
                        MessageBox.Show(ownerForm,
                                        "Cannot find \"gource\".\nPlease download \"gource\" and set the path in the plugins settings dialog.");
                        return(false);
                    }
                    var downloadDir  = Path.GetTempPath();
                    var fileName     = downloadDir + "\\gource.zip";
                    var downloadSize = DownloadFile(gourceUrl, fileName);
                    if (downloadSize > 0)
                    {
                        MessageBox.Show(downloadSize + " bytes downloaded.");
                        Directory.CreateDirectory(downloadDir + "\\gource");
                        UnZipFiles(fileName, downloadDir + "\\gource", true);

                        var newGourcePath = downloadDir + "\\gource\\gource.exe";
                        if (File.Exists(newGourcePath))
                        {
                            Settings.SetSetting("Path to \"gource\"", newGourcePath);
                            MessageBox.Show(ownerForm, "\"gource\" has been downloaded and unzipped.");
                            pathToGource = newGourcePath;
                        }
                    }
                    else
                    {
                        MessageBox.Show(ownerForm,
                                        "Downloading failed.\nPlease download \"gource\" and set the path in the plugins settings dialog.");
                    }
                }
            }

            using (var gourceStart = new GourceStart(pathToGource, eventArgs,
                                                     Settings.GetSetting("Arguments")))
            {
                gourceStart.ShowDialog(ownerForm);

                Settings.SetSetting("Arguments", gourceStart.GourceArguments);
                Settings.SetSetting("Path to \"gource\"", gourceStart.PathToGource);
            }
            return(false);
        }
Exemplo n.º 9
0
 private void GitUICommands_PreCheckout(object sender, GitUIBaseEventArgs e)
 {
     CurrentStatus = GitStatusMonitorState.Paused;
 }
Exemplo n.º 10
0
        public BitbucketPullRequestForm(BitbucketPlugin plugin, ISettingsSource settings, GitUIBaseEventArgs gitUiCommands)
        {
            InitializeComponent();
            Translate();

            _plugin            = plugin;
            _settingsContainer = settings;
            _gitUiCommands     = gitUiCommands;
            //Reviewers are not implemented
            lblReviewers.Visible      = false;
            ReviewersDataGrid.Visible = false;

            _settings = Settings.Parse(_gitUiCommands.GitModule, _settingsContainer, _plugin);
            if (_settings == null)
            {
                MessageBox.Show(_yourRepositoryIsNotInBitbucket.Text);
                Close();
                return;
            }
            Load += BitbucketViewPullRequestFormLoad;
            Load += BitbucketPullRequestFormLoad;

            lblLinkCreatePull.Text = string.Format("{0}/projects/{1}/repos/{2}/pull-requests?create",
                                                   _settings.BitbucketUrl, _settings.ProjectKey, _settings.RepoSlug);
            toolTip1.SetToolTip(lblLinkCreatePull, _linkLabelToolTip.Text);

            lblLinkViewPull.Text = string.Format("{0}/projects/{1}/repos/{2}/pull-requests",
                                                 _settings.BitbucketUrl, _settings.ProjectKey, _settings.RepoSlug);
            toolTip1.SetToolTip(lblLinkViewPull, _linkLabelToolTip.Text);
        }
Exemplo n.º 11
0
        public override bool Execute(GitUIBaseEventArgs eventArgs)
        {
            IGitModule gitUiCommands = eventArgs.GitModule;
            var        ownerForm     = eventArgs.OwnerForm as IWin32Window;

            if (!gitUiCommands.IsValidGitWorkingDir())
            {
                MessageBox.Show(ownerForm, _currentDirectoryIsNotValidGit.Text);
                return(false);
            }

            var pathToGource = GourcePath.ValueOrDefault(Settings);

            if (!string.IsNullOrEmpty(pathToGource))
            {
                if (!File.Exists(pathToGource))
                {
                    if (MessageBox.Show(ownerForm,
                                        string.Format(_resetConfigPath.Text, pathToGource), _gource.Text, MessageBoxButtons.YesNo) ==
                        DialogResult.Yes)
                    {
                        Settings.SetValue <string>(GourcePath.Name, GourcePath.DefaultValue, s => s);
                        pathToGource = GourcePath.DefaultValue;
                    }
                }
            }

            if (string.IsNullOrEmpty(pathToGource))
            {
                if (MessageBox.Show(ownerForm, _doYouWantDownloadGource.Text, _download.Text,
                                    MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    var gourceUrl = SearchForGourceUrl();

                    if (string.IsNullOrEmpty(gourceUrl))
                    {
                        MessageBox.Show(ownerForm, _cannotFindGource.Text);
                        return(false);
                    }
                    var downloadDir  = Path.GetTempPath();
                    var fileName     = Path.Combine(downloadDir, "gource.zip");
                    var downloadSize = DownloadFile(gourceUrl, fileName);
                    if (downloadSize > 0)
                    {
                        MessageBox.Show(string.Format(_bytesDownloaded.Text, downloadSize));
                        Directory.CreateDirectory(Path.Combine(downloadDir, "gource"));
                        UnZipFiles(fileName, Path.Combine(downloadDir, "gource"), true);

                        var newGourcePath = Path.Combine(downloadDir, "gource\\gource.exe");
                        if (File.Exists(newGourcePath))
                        {
                            MessageBox.Show(ownerForm, _gourceDownloadedAndUnzipped.Text);
                            pathToGource = newGourcePath;
                        }
                    }
                    else
                    {
                        MessageBox.Show(ownerForm, _downloadingFailed.Text);
                    }
                }
            }

            using (var gourceStart = new GourceStart(pathToGource, eventArgs, GourceArguments.ValueOrDefault(Settings)))
            {
                gourceStart.ShowDialog(ownerForm);
                Settings.SetValue <string>(GourceArguments.Name, gourceStart.GourceArguments, s => s);
                Settings.SetValue <string>(GourcePath.Name, gourceStart.PathToGource, s => s);
            }
            return(true);
        }
 public void Execute(GitUIBaseEventArgs gitUiCommands)
 {
     new CreateLocalBranchesForm(gitUiCommands).ShowDialog();
 }
        public override bool Execute(GitUIBaseEventArgs args)
        {
            var module        = (GitModule)args.GitModule;
            var allChangesCmd = GitCommands.GitCommandHelpers.GetAllChangedFilesCmd(true, UntrackedFilesMode.All, IgnoreSubmodulesMode.All);

            int exitCode;

            exitCode = args.GitModule.RunGitCmdResult("submodule update --init --recursive").ExitCode;

            // öncelikle bekleyen hiçbir değişiklik olmadığından emin oluyoruz
            var statusStringX = args.GitModule.RunGitCmdResult(allChangesCmd);
            var changedFiles  = GitCommandHelpers.GetAllChangedFilesFromString(module, statusStringX.StdOutput);

            if (changedFiles.Count != 0)
            {
                MessageBox.Show("Commit edilmeyi bekleyen dosyalarınız var. Lütfen işlemden önce bu dosyaları commit ediniz!");
                return(false);
            }

            // bunun bir feature branch i olmasını kontrol et
            var featureBranch = (args.GitModule.GetSelectedBranch() ?? "").ToLowerInvariant();

            if (featureBranch.IsNullOrEmpty() || featureBranch == "master" || featureBranch == "test")
            {
                MessageBox.Show("Bu işlem master ya da test branch lerinde yapılamaz!");
                return(false);
            }

            // origin deki son değişikliklerden haberdar ol
            var fetchCmd    = module.FetchCmd("origin", "", "");
            var cmdResult   = args.GitModule.RunGitCmdResult(fetchCmd);
            var fetchResult = cmdResult.StdError;

            exitCode = cmdResult.ExitCode;

            if (exitCode != 0)
            {
                MessageBox.Show("Fetch işlemi esnasında şu hata alındı:\n" +
                                fetchResult + "\nExitCode:" + exitCode);
                return(false);
            }

            // remote branch varsa, son değişiklikleri pull edelim
            var remoteBranchExists = module.GetRefs(false, true).Any(x => x.Name == featureBranch & x.IsRemote);

            if (remoteBranchExists)
            {
                var pullFeatureCmd = module.PullCmd("origin", featureBranch, featureBranch, false);
                cmdResult = args.GitModule.RunGitCmdResult(pullFeatureCmd);

                var pullFeatureResult = cmdResult.StdError;
                exitCode = cmdResult.ExitCode;

                if (exitCode != 0)
                {
                    MessageBox.Show("Feature pull işlemi esnasında şu hata alındı:\n" +
                                    pullFeatureResult + "\nExitCode:" + exitCode);
                    return(true);
                }
            }

            var switchBranchCmd = GitCommandHelpers.CheckoutCmd("master", LocalChangesAction.DontChange);

            exitCode = args.GitModule.RunGitCmdResult(switchBranchCmd).ExitCode;

            var currentBranch = args.GitModule.GetSelectedBranch().ToLowerInvariant();

            if (currentBranch != "master")
            {
                MessageBox.Show("Master branch'ine geçiş yapılamadı. İşleme devam edilemiyor!");
                return(true);
            }

            var pullCmd = module.PullCmd("origin", "master", "master", false);

            cmdResult = args.GitModule.RunGitCmdResult(pullCmd);
            var pullResult = cmdResult.StdError;

            exitCode = cmdResult.ExitCode;

            if (exitCode != 0)
            {
                MessageBox.Show("Pull işlemi esnasında şu hata alındı:\n" +
                                pullResult + "\nExitCode:" + exitCode);
                return(true);
            }

            switchBranchCmd = GitCommandHelpers.CheckoutCmd(featureBranch, LocalChangesAction.DontChange);
            exitCode        = args.GitModule.RunGitCmdResult(switchBranchCmd).ExitCode;

            currentBranch = args.GitModule.GetSelectedBranch();
            if (currentBranch != featureBranch)
            {
                MessageBox.Show("Feature branch'ine geri geçiş yapılamadı. İşleme devam edilemiyor!");
                return(true);
            }

            // master'ı feature branch e birleştir
            var mergeCmd = GitCommandHelpers.MergeBranchCmd("master", allowFastForward: true, squash: false, noCommit: false, strategy: "");

            cmdResult = args.GitModule.RunGitCmdResult(mergeCmd);
            var mergeResult = cmdResult.StdError;

            exitCode = cmdResult.ExitCode;

            if (exitCode != 0)
            {
                MessageBox.Show("Merge işlemi esnasında şu hata alındı:\n" +
                                mergeResult + "\nExitCode:" + exitCode);
                return(true);
            }

            if (remoteBranchExists)
            {
                // varsa local deki değişikliği hemen merkeze gönderelim
                var pushFeatureCmd = GitCommandHelpers.PushTagCmd("origin", featureBranch, false);
                cmdResult = args.GitModule.RunGitCmdResult(pushFeatureCmd);
                var pushFeatureResult = cmdResult.StdError;
                exitCode = cmdResult.ExitCode;


                if (exitCode != 0)
                {
                    MessageBox.Show("Push feature işlemi esnasında şu hata alındı:\n" +
                                    pushFeatureResult + "\nExitCode:" + exitCode);
                    return(true);
                }
            }

            MessageBox.Show(String.Format("{0} feature branch'i başarıyla master'daki değişiklikler ile güncellendi.", featureBranch));

            return(true);
        }
        public override bool Execute(GitUIBaseEventArgs args)
        {
            var       module        = (GitModule)args.GitModule;
            var       allChangesCmd = GitCommandHelpers.GetAllChangedFilesCmd(true, UntrackedFilesMode.All, IgnoreSubmodulesMode.All);;
            CmdResult cmdResult;
            var       exitCode = args.GitModule.RunGitCmdResult("submodule update --init --recursive").ExitCode;

            // öncelikle bekleyen hiçbir değişiklik olmadığından emin oluyoruz
            var status       = args.GitModule.RunGitCmdResult(allChangesCmd);
            var statusString = status.StdOutput;

            exitCode = status.ExitCode;
            var changedFiles = GitCommandHelpers.GetAllChangedFilesFromString(module, statusString);

            if (changedFiles.Count != 0)
            {
                MessageBox.Show("Commit edilmeyi bekleyen dosyalarınız var. Lütfen TEST işleminden önce bu dosyaları commit ediniz!");
                return(false);
            }

            // bunun bir feature branch i olmasını kontrol et
            var featureBranch = (args.GitModule.GetSelectedBranch() ?? "").ToLowerInvariant();

            if (featureBranch.IsNullOrEmpty() || featureBranch == "master" || featureBranch == "test")
            {
                MessageBox.Show("Bu işlem master ya da test branch lerinde yapılamaz!");
                return(false);
            }

            // son kez onay alalım
            if (!Dialogs.Confirm("Bulunduğunuz branch, TEST'e gönderilecek.\n\n" +
                                 "Devam etmek istiyor musunuz?"))
            {
                return(true);
            }

            // origin deki son değişikliklerden haberdar ol
            var fetchCmd     = module.FetchCmd("origin", "", "");
            var fetchResultX = args.GitModule.RunGitCmdResult(fetchCmd);

            exitCode = fetchResultX.ExitCode;
            if (exitCode != 0)
            {
                MessageBox.Show("Fetch işlemi esnasında şu hata alındı:\n" +
                                fetchResultX.StdError + "\nExitCode:" + exitCode);
                return(false);
            }

            // remote branch varsa, son değişiklikleri pull edelim
            var remoteBranchExists = module.GetRefs(false, true).Any(x => x.Name == featureBranch & x.IsRemote);

            if (remoteBranchExists)
            {
                var pullFeatureCmd = module.PullCmd("origin", featureBranch, featureBranch, false);
                cmdResult = args.GitModule.RunGitCmdResult(pullFeatureCmd);
                var pullFeatureResult = cmdResult.StdError;
                exitCode = cmdResult.ExitCode;

                if (exitCode != 0)
                {
                    MessageBox.Show("Feature pull işlemi esnasında şu hata alındı:\n" +
                                    pullFeatureResult + "\nExitCode:" + exitCode);
                    return(true);
                }
            }

            // test branch ine geçiş yap
            var switchBranchCmd = GitCommandHelpers.CheckoutCmd("test", LocalChangesAction.DontChange);

            exitCode = args.GitModule.RunGitCmdResult(switchBranchCmd).ExitCode;

            var currentBranch = args.GitModule.GetSelectedBranch().ToLowerInvariant();

            if (currentBranch != "test")
            {
                MessageBox.Show("Test branch'ine geçiş yapılamadı. İşleme devam edilemiyor!");
                return(true);
            }

            // varsa test teki son değişiklikleri al
            // test e direk commit olmayacağı varsayıldığından rebase e gerek yok.
            var pullCmd = module.PullCmd("origin", "test", "test", false);

            cmdResult = args.GitModule.RunGitCmdResult(pullCmd);
            var pullResult = cmdResult.StdError;

            exitCode = cmdResult.ExitCode;

            if (exitCode != 0)
            {
                MessageBox.Show("Test'ten pull işlemi esnasında şu hata alındı:\n" +
                                pullResult + "\nExitCode:" + exitCode);
                return(true);
            }

            // feature branch i test e birleştir
            var mergeCmd = GitCommandHelpers.MergeBranchCmd(featureBranch, allowFastForward: false, squash: false, noCommit: false, strategy: "");

            cmdResult = args.GitModule.RunGitCmdResult(mergeCmd);
            var mergeResult = cmdResult.StdError;

            exitCode = cmdResult.ExitCode;

            if (exitCode != 0)
            {
                MessageBox.Show("Merge işlemi esnasında şu hata alındı:\n" +
                                mergeResult + "\nExitCode:" + exitCode);
                return(true);
            }

            MessageBox.Show(String.Format("{0} feature branch'i başarıyla TEST'e merge edildi.\n\nLütfen projeyi son haliyle TEST'teyken " +
                                          "build edip, PUSH işlemi yapınız.", featureBranch));

            Clipboard.SetText("Gerekli kontroller yapılmıştır, gerçek ortama çıkarılabilir mi?");

            return(true);
        }
Exemplo n.º 15
0
 private void GitUICommands_PostCheckout(object sender, GitUIBaseEventArgs e)
 {
     CurrentStatus = WorkingStatus.Started;
 }
Exemplo n.º 16
0
 private void GitUICommands_PostEditGitIgnore(object sender, GitUIBaseEventArgs e)
 {
     UpdateIgnoredFiles(true);
 }
Exemplo n.º 17
0
 public override bool Execute(GitUIBaseEventArgs gitUiCommands)
 {
     using (var frm = new CreateLocalBranchesForm(gitUiCommands)) frm.ShowDialog(gitUiCommands.OwnerForm as IWin32Window);
     return(true);
 }
Exemplo n.º 18
0
 public void Execute(GitUIBaseEventArgs gitUiCommands)
 {
     new ConfigureGithub().ShowDialog();
 }
Exemplo n.º 19
0
 public override bool Execute(GitUIBaseEventArgs gitUiCommands)
 {
     using (var frm = new FindLargeFilesForm(SizeLargeFile[Settings], gitUiCommands))
         frm.ShowDialog(gitUiCommands.OwnerForm);
     return(true);
 }
Exemplo n.º 20
0
        public override bool Execute(GitUIBaseEventArgs args)
        {
            var module        = (GitModule)args.GitModule;
            var allChangesCmd = GitCommands.GitCommandHelpers.GetAllChangedFilesCmd(true, UntrackedFilesMode.All, IgnoreSubmodulesMode.All);;

            int exitCode;

            exitCode = args.GitModule.RunGitCmdResult("submodule update --init --recursive").ExitCode;

            var resultString = args.GitModule.RunGitCmdResult(allChangesCmd);
            var statusString = resultString.StdOutput;
            var changedFiles = GitCommandHelpers.GetAllChangedFilesFromString(module, statusString);

            if (changedFiles.Count != 0)
            {
                MessageBox.Show("Commit edilmeyi bekleyen dosyalarınız var. Lütfen işlemden önce bu dosyaları commit ediniz!");
                return(false);
            }

            var currentBranch = (args.GitModule.GetSelectedBranch() ?? "").ToLowerInvariant();

            // master branch inde değilsek ona geçelim
            var branch = currentBranch;

            if (branch != "master")
            {
                var switchBranchCmd = GitCommandHelpers.CheckoutCmd("master", LocalChangesAction.DontChange);
                exitCode = args.GitModule.RunGitCmdResult(switchBranchCmd).ExitCode;

                branch = args.GitModule.GetSelectedBranch().ToLowerInvariant();
                if (branch != "master")
                {
                    MessageBox.Show("Master branch'ine geçiş yapılamadı. İşleme devam edilemiyor!");
                    return(false);
                }
            }

            // master a direk commit olmadığını varsayıyoruz, dolayısıyla rebase e gerek yok, sadece pull yapalım.
            // rebase yaparsak bazı merge commitleriyle ilgili kayıp yaşanabilir
            // bu arada eğer local te bir şekilde master da commit varsa (merkezde olmayan??) branch bir önceki committen alınmış olur
            var pullCmd    = module.PullCmd("origin", "master", "master", false);
            var cmdResult  = args.GitModule.RunGitCmdResult(pullCmd);
            var pullResult = cmdResult.StdError;

            exitCode = cmdResult.ExitCode;

            if (exitCode != 0)
            {
                MessageBox.Show("Pull işlemi esnasında şu hata alındı:\n" +
                                pullResult + "\nExitCode:" + exitCode);
                return(true);
            }

            currentBranch = (args.GitModule.GetSelectedBranch() ?? "").ToLowerInvariant();
            if (currentBranch.IsNullOrEmpty() || currentBranch.ToLowerInvariant() != "master")
            {
                MessageBox.Show("Bu işlem master branch'inde yapılmalıdır!");
                return(false);
            }

            var featureMergeHash = Clipboard.GetText();

            if (Dialogs.Prompt("Canlıya gönderilecek feature branch'in TEST'e birleştirildiği commit hash'ini giriniz",
                               "Feature Branch Merge", ref featureMergeHash) != DialogResult.OK)
            {
                return(false);
            }

            var mergeInfo  = module.ShowSha1(featureMergeHash);
            var mergeLines = mergeInfo.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);

            if (mergeLines.Length < 3 ||
                !mergeLines[0].StartsWith("commit ", StringComparison.OrdinalIgnoreCase) ||
                !mergeLines[1].StartsWith("Merge: ", StringComparison.OrdinalIgnoreCase) ||
                !mergeLines[2].StartsWith("Author: ", StringComparison.OrdinalIgnoreCase) ||
                !mergeLines[4].Trim().StartsWith("Merge branch '", StringComparison.OrdinalIgnoreCase) ||
                mergeLines[4].IndexOf("' into", StringComparison.OrdinalIgnoreCase) < 0)
            {
                Dialogs.Alert("Merge commit'i yerine aşağıdaki sonuç bulundu:\n\n" +
                              mergeInfo);
                return(false);
            }

            var mergeTitle = mergeLines[4].Trim();

            mergeTitle = mergeTitle.Substring("Merge branch '".Length);
            var mergeIntoIdx = mergeTitle.IndexOf("' into");
            var branchName   = mergeTitle.Substring(0, mergeIntoIdx);

            var info  = module.ShowSha1(featureMergeHash + "^2");
            var lines = info.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);

            if (lines.Length < 3 ||
                ((!lines[0].StartsWith("commit ", StringComparison.OrdinalIgnoreCase) ||
                  !lines[1].StartsWith("Author: ", StringComparison.OrdinalIgnoreCase)) &&
                 (!lines[0].StartsWith("commit ", StringComparison.OrdinalIgnoreCase) ||
                  !lines[1].StartsWith("Merge: ", StringComparison.OrdinalIgnoreCase) ||
                  !lines[2].StartsWith("Author: ", StringComparison.OrdinalIgnoreCase) ||
                  info.Contains("' into test") ||
                  info.Contains("' into 'test"))))
            {
                Dialogs.Alert("Birleştirilen feature branch'i yerine aşağıdaki sonuç bulundu:\n\n" +
                              info);
                return(false);
            }

            var author = lines[1].Trim().Substring("Author: ".Length).Trim();
            var commit = lines[0].Trim().Substring("commit ".Length).Trim();

            var tagName   = "published-" + branchName;
            var tagResult = module.Tag(tagName, commit, false, false);

            if (!tagResult.IsNullOrWhiteSpace())
            {
                Dialogs.Alert("TAG RESULT: " + tagResult);
            }

            var pushTagCmd = GitCommandHelpers.PushTagCmd("origin", tagName, false);

            cmdResult = args.GitModule.RunGitCmdResult(pushTagCmd);
            var pushTagResult = cmdResult.StdError;

            exitCode = cmdResult.ExitCode;

            if (exitCode != 0)
            {
                MessageBox.Show("Tag push işlemi esnasında şu hata alındı:\n" + pushTagResult + "\nExitCode:" + exitCode);
                return(true);
            }

            var mergeCmd = GitCommandHelpers.MergeBranchCmd(commit, true, true, true, null);

            cmdResult = args.GitModule.RunGitCmdResult(mergeCmd);
            var mergeResult = cmdResult.StdError;

            exitCode = cmdResult.ExitCode;

            if (exitCode != 0 && exitCode != 128)
            {
                MessageBox.Show("Merge işlemi esnasında şu hata alındı:\n" + mergeResult + "\nExitCode:" + exitCode);
                return(true);
            }

            var gitDirectory = args.GitModule.GetGitDirectory();
            var msg          = File.ReadAllText(Path.Combine(gitDirectory, "SQUASH_MSG"));

            msg = "Publish Branch '" + branchName + "'\n\n" + msg;
            var msgFile = Path.Combine(gitDirectory, "SQUASH_MSG2");

            File.WriteAllText(msgFile, msg);
            try
            {
                var commitCmd = "commit --author=\"" + author + "\" --file=\"" + msgFile.Replace("\\", "/") + "\"";
                cmdResult = args.GitModule.RunGitCmdResult(commitCmd);
                var commitResult = cmdResult.StdError;
                exitCode = cmdResult.ExitCode;

                if (exitCode != 0)
                {
                    MessageBox.Show("Commit işlemi esnasında şu hata alındı:\n" + commitResult + "\nExitCode:" + exitCode);
                    return(true);
                }
            }
            finally
            {
                File.Delete(msgFile);
            }

            MessageBox.Show(String.Format("{0} feature branch'i başarıyla MASTER'a merge edildi.\n\nDeğişiklikleri inceleyip sürüm çıkabilirsiniz.", branchName));

            return(true);
        }
Exemplo n.º 21
0
 void gitUiCommands_PostRegisterPlugin(object sender, GitUIBaseEventArgs e)
 {
     UpdateGerritMenuItems(e);
 }
Exemplo n.º 22
0
        public BitbucketPullRequestForm(BitbucketPlugin plugin, ISettingsSource settings, GitUIBaseEventArgs gitUiCommands)
        {
            InitializeComponent();
            Translate();

            _plugin            = plugin;
            _settingsContainer = settings;
            _gitUiCommands     = gitUiCommands;
            //TODO Retrieve all users and set default reviewers
            ReviewersDataGrid.Visible = false;
        }
Exemplo n.º 23
0
 public abstract bool Execute(GitUIBaseEventArgs gitUiCommands);
Exemplo n.º 24
0
 private void GitUICommands_PostEditGitIgnore(object sender, GitUIBaseEventArgs e)
 {
     _ignoredFiles         = new HashSet <string>();
     _ignoredFilesAreStale = true;
 }