using System.Threading.Tasks; namespace SourceGit.Views.Popups { /// /// 对于不是当前分支的本地分支,Fast-Forward /// public partial class FastForwardWithoutCheckout : Controls.PopupWidget { private string repo = null; private string remote = null; private string localBranch = null; private string remoteBranch = null; private bool isValid = false; public FastForwardWithoutCheckout(string repo, string branch, string upstream) { int idx = upstream.IndexOf('/'); if (idx < 0 || idx == upstream.Length - 1) { App.Exception(repo, $"Invalid upstream: {upstream}"); return; } this.repo = repo; this.remote = upstream.Substring(0, idx); this.localBranch = branch; this.remoteBranch = upstream.Substring(idx+1); this.isValid = true; InitializeComponent(); } public override string GetTitle() { return App.Text("Fetch.Title"); } public override Task Start() { return Task.Run(() => { if (isValid) { Models.Watcher.SetEnabled(repo, false); new Commands.Fetch(repo, remote, localBranch, remoteBranch, UpdateProgress).Exec(); Models.Watcher.SetEnabled(repo, true); } return true; }); } } }