fix: changing the repository URL only changes the fetch URL if push URL using a different URL (#553)

This commit is contained in:
leo 2024-10-11 10:03:42 +08:00
parent 93706449be
commit c2b17ef9d0
No known key found for this signature in database
2 changed files with 15 additions and 3 deletions

View file

@ -32,9 +32,17 @@
return Exec();
}
public bool SetURL(string name, string url)
public string GetURL(string name, bool isPush)
{
Args = $"remote set-url {name} {url}";
Args = "remote get-url" + (isPush ? " --push " : " ") + name;
var rs = ReadToEnd();
return rs.IsSuccess ? rs.StdOut.Trim() : string.Empty;
}
public bool SetURL(string name, string url, bool isPush)
{
Args = "remote set-url" + (isPush ? " --push " : " ") + $"{name} {url}";
return Exec();
}
}

View file

@ -118,11 +118,15 @@ namespace SourceGit.ViewModels
if (_remote.URL != _url)
{
var succ = new Commands.Remote(_repo.FullPath).SetURL(_name, _url);
var succ = new Commands.Remote(_repo.FullPath).SetURL(_name, _url, false);
if (succ)
_remote.URL = _url;
}
var pushURL = new Commands.Remote(_repo.FullPath).GetURL(_name, true);
if (pushURL != _url)
new Commands.Remote(_repo.FullPath).SetURL(_name, _url, true);
SetProgressDescription("Post processing ...");
new Commands.Config(_repo.FullPath).Set($"remote.{_name}.sshkey", _useSSH ? SSHKey : null);