private async Task Pull() { var branch = (Projeto.LocalBranch)DetailView.GetFocusedRow(); if (branch == null) { return; } using (new DlgAguarde(this, "Aguarde", "Fazendo pull do branch seelcionado.")) { try { await Task.Run(() => branch.Pull()); } catch (LibGit2SharpException x) { if (x.Message.Contains("unsupported URL protocol") && MessageBox.Show ( "Não foi possivel realizar a operação pois o repositório usa um protocolo não suportado.\n " + "Deseja converter o repositório para https e tentar novamente?", "Atenção", MessageBoxButtons.YesNo, MessageBoxIcon.Warning ) == DialogResult.Yes) { var projeto = ((Projeto)gridProjetos.GetFocusedRow()); projeto.ConverterParaHttps(); await Pull(); } else { DlgErro.Erro(this, x, "Falha ao tentar fazer o pull.\n" ); } } } }
public async Task Fetch() { using (new DlgAguarde(this, "Fetch", "Baixando atualizações dos repositórios")) { var projeto = ((Projeto)gridProjetos.GetFocusedRow()); if (projeto == null) { return; } try { await projeto.Fetch(); } catch (LibGit2SharpException x) { if (x.Message.Contains("unsupported URL protocol") && MessageBox.Show ( "Não foi possivel realizar a operação pois o repositório usa um protocolo não suportado.\n " + "Deseja converter o repositório para https e tentar novamente?", "Atenção", MessageBoxButtons.YesNo, MessageBoxIcon.Warning ) == DialogResult.Yes) { projeto.ConverterParaHttps(); await Fetch(); } else { DlgErro.Erro(this, x, "Falha ao tentar fazer o fetch.\n" ); } } } }
private async Task Push(Projeto projeto) { using (new DlgAguarde(this, "Push", "Subindo commits para o servidor remoto.")) { try { await projeto.Push(); } catch (LibGit2SharpException x) { if (x.Message.Contains("unsupported URL protocol") && MessageBox.Show ( "Não foi possivel realizar a operação pois o repositório usa um protocolo não suportado.\n " + "Deseja converter o repositório para https e tentar novamente?", "Atenção", MessageBoxButtons.YesNo, MessageBoxIcon.Warning ) == DialogResult.No) { return; } projeto.ConverterParaHttps(); await projeto.Push(); } catch (Exception x) { DlgErro.Erro(this, x, "Falha ao tentar fazer o push dos commits.\n" + "Verifique se o usuário e senha estão configurados corretamente.\n" + "Atualmente conexões ssh não são suportadas." ); } } }