public EditRemoteDialog (RemoteSource remote, bool isNew) { this.Build (); this.remote = remote; updating = true; entryName.Text = remote.Name; entryUrl.Text = remote.FetchUrl ?? ""; entryPushUrl.Text = string.IsNullOrEmpty (remote.PushUrl) ? remote.FetchUrl : remote.PushUrl; if (!isNew) checkImportTags.Visible = false; updating = false; UpdateButtons (); }
public void UpdateRemote (RemoteSource remote) { if (string.IsNullOrEmpty (remote.FetchUrl)) throw new InvalidOperationException ("Fetch url can't be empty"); if (remote.RepoRemote == null) throw new InvalidOperationException ("Remote not created"); remote.Update (); remote.cfg.Save (); }
public void AddRemote (RemoteSource remote, bool importTags) { if (string.IsNullOrEmpty (remote.Name)) throw new InvalidOperationException ("Name not set"); StoredConfig c = RootRepository.GetConfig (); RemoteConfig rc = new RemoteConfig (c, remote.Name); c.Save (); remote.RepoRemote = rc; remote.cfg = c; UpdateRemote (remote); }
protected virtual void OnButtonAddRemoteClicked (object sender, System.EventArgs e) { var remote = new RemoteSource (); var dlg = new EditRemoteDialog (remote, true); try { if (MessageService.RunCustomDialog (dlg) == (int) Gtk.ResponseType.Ok) { repo.AddRemote (remote, dlg.ImportTags); FillRemotes (); } } finally { dlg.Destroy (); } }
public void UpdateRemote (RemoteSource remote) { if (string.IsNullOrEmpty (remote.FetchUrl)) throw new InvalidOperationException ("Fetch url can't be empty"); RunCommand ("remote set-url " + remote.Name + " " + remote.FetchUrl, true); if (!string.IsNullOrEmpty (remote.PushUrl)) RunCommand ("remote set-url --push " + remote.Name + " " + remote.PushUrl, true); else RunCommand ("remote set-url --push --delete " + remote.Name + " " + remote.PushUrl, true); }
public void AddRemote (RemoteSource remote, bool importTags) { RunCommand ("remote add " + (importTags ? "--tags " : "--no-tags ") + remote.Name + " " + remote.FetchUrl, true); if (!string.IsNullOrEmpty (remote.PushUrl) && remote.PushUrl != remote.FetchUrl) RunCommand ("remote set-url --push " + remote.Name + " " + remote.PushUrl, true); }
public IEnumerable<RemoteSource> GetRemotes () { StringReader sr = RunCommand ("remote -v", true); string line; List<RemoteSource> sources = new List<RemoteSource> (); while ((line = sr.ReadLine ()) != null) { int i = line.IndexOf ('\t'); if (i == -1) continue; string name = line.Substring (0, i); RemoteSource remote = sources.FirstOrDefault (r => r.Name == name); if (remote == null) { remote = new RemoteSource (); remote.Name = name; sources.Add (remote); } int j = line.IndexOf (" (fetch)"); if (j != -1) { remote.FetchUrl = line.Substring (i, line.Length - i - 8).Trim (); } else { j = line.IndexOf (" (push)"); remote.PushUrl = line.Substring (i, line.Length - i - 7).Trim (); } } return sources; }