예제 #1
0
        protected void OnButtonBranchClicked(object sender, System.EventArgs e)
        {
            Stash s = GetSelected();

            if (s != null)
            {
                var dlg = new EditBranchDialog(repository, null, true);
                try {
                    if (MessageService.RunCustomDialog(dlg) == (int)ResponseType.Ok)
                    {
                        ObjectId  commit = repository.RootRepository.Resolve(s.CommitId);
                        var       rw     = new RevWalk(repository.RootRepository);
                        RevCommit c      = rw.ParseCommit(commit);
                        RevCommit old    = c.GetParent(0);
                        rw.ParseHeaders(old);
                        repository.CreateBranchFromCommit(dlg.BranchName, old);
                        GitService.SwitchToBranch(repository, dlg.BranchName);
                        ApplyStashAndRemove(s);
                    }
                } finally {
                    dlg.Destroy();
                }
                Respond(ResponseType.Ok);
            }
        }
예제 #2
0
        protected void OnButtonBranchClicked(object sender, System.EventArgs e)
        {
            Stash s          = GetSelected();
            int   stashIndex = GetSelectedIndex();

            if (s != null)
            {
                var dlg = new EditBranchDialog(repository);
                try {
                    if (MessageService.RunCustomDialog(dlg) == (int)ResponseType.Ok)
                    {
                        repository.CreateBranchFromCommit(dlg.BranchName, s.Base);
                        GitService.SwitchToBranch(repository, dlg.BranchName);
                        ApplyStashAndRemove(stashIndex);
                    }
                } finally {
                    dlg.Destroy();
                    dlg.Dispose();
                }
                Respond(ResponseType.Ok);
            }
        }