public static void Push (GitRepository repo) { var dlg = new PushDialog (repo); try { if (MessageService.RunCustomDialog (dlg) != (int) Gtk.ResponseType.Ok) return; string remote = dlg.SelectedRemote; string branch = dlg.SelectedRemoteBranch ?? repo.GetCurrentBranch (); ProgressMonitor monitor = VersionControlService.GetProgressMonitor (GettextCatalog.GetString ("Pushing changes..."), VersionControlOperationType.Push); ThreadPool.QueueUserWorkItem (delegate { try { repo.Push (monitor, remote, branch); } catch (Exception ex) { monitor.ReportError (ex.Message, ex); } finally { monitor.Dispose (); } }); } finally { dlg.Destroy (); dlg.Dispose (); } }
public static void Push(GitRepository repo) { var dlg = new PushDialog(repo); try { if (MessageService.RunCustomDialog(dlg) != (int)Gtk.ResponseType.Ok) { return; } string remote = dlg.SelectedRemote; string branch = dlg.SelectedRemoteBranch ?? repo.GetCurrentBranch(); ProgressMonitor monitor = VersionControlService.GetProgressMonitor(GettextCatalog.GetString("Pushing changes..."), VersionControlOperationType.Push); ThreadPool.QueueUserWorkItem(delegate { try { repo.Push(monitor, remote, branch); } catch (Exception ex) { monitor.ReportError(ex.Message, ex); } finally { monitor.Dispose(); } }); } finally { dlg.Destroy(); dlg.Dispose(); } }
public static void Push(GitRepository repo) { bool hasCommits = false; using (var RootRepository = new LibGit2Sharp.Repository(repo.RootPath)) hasCommits = RootRepository.Commits.Any(); if (!hasCommits) { MessageService.ShowMessage( GettextCatalog.GetString("There are no changes to push."), GettextCatalog.GetString("Create an initial commit first.") ); return; } var dlg = new PushDialog(repo); try { if (MessageService.RunCustomDialog(dlg) != (int)Gtk.ResponseType.Ok) { return; } string remote = dlg.SelectedRemote; string branch = dlg.SelectedRemoteBranch ?? repo.GetCurrentBranch(); ProgressMonitor monitor = VersionControlService.GetProgressMonitor(GettextCatalog.GetString("Pushing changes..."), VersionControlOperationType.Push); Task.Run(async() => { try { await repo.PushAsync(monitor, remote, branch); } catch (Exception ex) { monitor.ReportError(ex.Message, ex); } finally { monitor.Dispose(); } }); } finally { dlg.Destroy(); dlg.Dispose(); } }