fix<Remote>: do NOT check remote name if only edit it's URL

This commit is contained in:
leo 2020-10-12 09:58:39 +08:00
parent f476d758ca
commit 8050d5a2ab
2 changed files with 7 additions and 3 deletions

View file

@ -31,6 +31,7 @@ namespace SourceGit.Helpers {
/// </summary> /// </summary>
public class RemoteNameRule : ValidationRule { public class RemoteNameRule : ValidationRule {
public Git.Repository Repo { get; set; } public Git.Repository Repo { get; set; }
public Git.Remote Old { get; set; }
public override ValidationResult Validate(object value, CultureInfo cultureInfo) { public override ValidationResult Validate(object value, CultureInfo cultureInfo) {
var regex = new Regex(@"^[\w\-\.]+$"); var regex = new Regex(@"^[\w\-\.]+$");
@ -40,11 +41,13 @@ namespace SourceGit.Helpers {
if (string.IsNullOrEmpty(name)) return new ValidationResult(false, "Remote name can NOT be null"); if (string.IsNullOrEmpty(name)) return new ValidationResult(false, "Remote name can NOT be null");
if (!regex.IsMatch(name)) return new ValidationResult(false, $"Bad name for remote. Regex: ^[\\w\\-\\.]+$"); if (!regex.IsMatch(name)) return new ValidationResult(false, $"Bad name for remote. Regex: ^[\\w\\-\\.]+$");
if (Old == null || name != Old.Name) {
foreach (var t in remotes) { foreach (var t in remotes) {
if (t.Name == name) { if (t.Name == name) {
return new ValidationResult(false, $"Remote '{name}' already exists"); return new ValidationResult(false, $"Remote '{name}' already exists");
} }
} }
}
return ValidationResult.ValidResult; return ValidationResult.ValidResult;
} }

View file

@ -30,6 +30,7 @@ namespace SourceGit.UI {
InitializeComponent(); InitializeComponent();
nameValidator.Repo = repo; nameValidator.Repo = repo;
nameValidator.Old = remote;
if (remote != null) { if (remote != null) {
title.Content = "Edit Remote"; title.Content = "Edit Remote";