From d73ae83b01ec3d5dcf804ddc20e3ea9aa03bcbaf Mon Sep 17 00:00:00 2001 From: leo Date: Wed, 21 May 2025 16:29:33 +0800 Subject: [PATCH] feature: supports to use relative path in remote URL (#1339) Signed-off-by: leo --- src/Models/Remote.cs | 5 ++++- src/ViewModels/AddSubmodule.cs | 15 ++++----------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/Models/Remote.cs b/src/Models/Remote.cs index f8980b5a..2f6c7dc1 100644 --- a/src/Models/Remote.cs +++ b/src/Models/Remote.cs @@ -50,7 +50,10 @@ namespace SourceGit.Models return true; } - return url.StartsWith("file://", StringComparison.Ordinal) || Directory.Exists(url); + return url.StartsWith("file://", StringComparison.Ordinal) || + url.StartsWith("./", StringComparison.Ordinal) || + url.StartsWith("../", StringComparison.Ordinal) || + Directory.Exists(url); } public bool TryGetVisitURL(out string url) diff --git a/src/ViewModels/AddSubmodule.cs b/src/ViewModels/AddSubmodule.cs index fa10315e..82a1f62a 100644 --- a/src/ViewModels/AddSubmodule.cs +++ b/src/ViewModels/AddSubmodule.cs @@ -34,17 +34,10 @@ namespace SourceGit.ViewModels public static ValidationResult ValidateURL(string url, ValidationContext ctx) { - if (ctx.ObjectInstance is AddSubmodule) - { - if (!Models.Remote.IsValidURL(url) && - !url.StartsWith("./", StringComparison.Ordinal) && - !url.StartsWith("../", StringComparison.Ordinal)) - return new ValidationResult("Invalid repository URL format"); - - return ValidationResult.Success; - } - - return new ValidationResult("Missing validation context"); + if (!Models.Remote.IsValidURL(url)) + return new ValidationResult("Invalid repository URL format"); + + return ValidationResult.Success; } public override Task Sure()