mirror of
https://github.com/sourcegit-scm/sourcegit
synced 2025-06-16 07:55:00 +00:00
fix: remove trailing slash in paths, to avoid failing comparisons.
This is needed since DirectoryInfo.Fullname (and .FullPath) will not "normalize" trailing slashes, so direct equality tests are error-prone. This fixes a bug in ScanRepositories.GetUnmanagedRepositories(), where not all Git repo folders were added. (Also, corrected a variable name from 'founded' to 'found'.)
This commit is contained in:
parent
75c32c1a01
commit
54c05ac35a
1 changed files with 7 additions and 7 deletions
|
@ -31,8 +31,8 @@ namespace SourceGit.ViewModels
|
||||||
watch.Start();
|
watch.Start();
|
||||||
|
|
||||||
var rootDir = new DirectoryInfo(RootDir);
|
var rootDir = new DirectoryInfo(RootDir);
|
||||||
var founded = new List<FoundRepository>();
|
var found = new List<FoundRepository>();
|
||||||
GetUnmanagedRepositories(rootDir, founded, new EnumerationOptions()
|
GetUnmanagedRepositories(rootDir, found, new EnumerationOptions()
|
||||||
{
|
{
|
||||||
AttributesToSkip = FileAttributes.Hidden | FileAttributes.System,
|
AttributesToSkip = FileAttributes.Hidden | FileAttributes.System,
|
||||||
IgnoreInaccessible = true,
|
IgnoreInaccessible = true,
|
||||||
|
@ -46,11 +46,11 @@ namespace SourceGit.ViewModels
|
||||||
|
|
||||||
Dispatcher.UIThread.Invoke(() =>
|
Dispatcher.UIThread.Invoke(() =>
|
||||||
{
|
{
|
||||||
var normalizedRoot = rootDir.FullName.Replace("\\", "/");
|
var normalizedRoot = rootDir.FullName.Replace("\\", "/").TrimEnd('/');
|
||||||
|
|
||||||
foreach (var f in founded)
|
foreach (var f in found)
|
||||||
{
|
{
|
||||||
var parent = new DirectoryInfo(f.Path).Parent!.FullName.Replace("\\", "/");
|
var parent = new DirectoryInfo(f.Path).Parent!.FullName.Replace("\\", "/").TrimEnd('/');
|
||||||
if (parent.Equals(normalizedRoot, StringComparison.Ordinal))
|
if (parent.Equals(normalizedRoot, StringComparison.Ordinal))
|
||||||
{
|
{
|
||||||
Preferences.Instance.FindOrAddNodeByRepositoryPath(f.Path, null, false);
|
Preferences.Instance.FindOrAddNodeByRepositoryPath(f.Path, null, false);
|
||||||
|
@ -93,7 +93,7 @@ namespace SourceGit.ViewModels
|
||||||
|
|
||||||
CallUIThread(() => ProgressDescription = $"Scanning {subdir.FullName}...");
|
CallUIThread(() => ProgressDescription = $"Scanning {subdir.FullName}...");
|
||||||
|
|
||||||
var normalizedSelf = subdir.FullName.Replace("\\", "/");
|
var normalizedSelf = subdir.FullName.Replace("\\", "/").TrimEnd('/');
|
||||||
if (_managed.Contains(normalizedSelf))
|
if (_managed.Contains(normalizedSelf))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -103,7 +103,7 @@ namespace SourceGit.ViewModels
|
||||||
var test = new Commands.QueryRepositoryRootPath(subdir.FullName).ReadToEnd();
|
var test = new Commands.QueryRepositoryRootPath(subdir.FullName).ReadToEnd();
|
||||||
if (test.IsSuccess && !string.IsNullOrEmpty(test.StdOut))
|
if (test.IsSuccess && !string.IsNullOrEmpty(test.StdOut))
|
||||||
{
|
{
|
||||||
var normalized = test.StdOut.Trim().Replace("\\", "/");
|
var normalized = test.StdOut.Trim().Replace("\\", "/").TrimEnd('/');
|
||||||
if (!_managed.Contains(normalized))
|
if (!_managed.Contains(normalized))
|
||||||
outs.Add(new FoundRepository(normalized, false));
|
outs.Add(new FoundRepository(normalized, false));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue