mirror of
https://github.com/sourcegit-scm/sourcegit
synced 2025-06-16 07:55:00 +00:00
code_review: commit b969ac161a
- The return code of `AutoRemoveInvalidNode` is never used - It's not necessary to sort all nodes after re-scan default clone dir. Because `FindOrAddNodeByRepositoryPath` makes sure added node is ordered - Add a new parameter `save` to `FindOrAddNodeByRepositoryPath` method, and disable it while scanning. Instead, we will save it after scan finished. Signed-off-by: leo <longshuang@msn.cn>
This commit is contained in:
parent
b969ac161a
commit
464fe74580
2 changed files with 7 additions and 16 deletions
|
@ -453,17 +453,12 @@ namespace SourceGit.ViewModels
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SortAllNodes()
|
|
||||||
{
|
|
||||||
SortNodesRecursive(RepositoryNodes);
|
|
||||||
}
|
|
||||||
|
|
||||||
public RepositoryNode FindNode(string id)
|
public RepositoryNode FindNode(string id)
|
||||||
{
|
{
|
||||||
return FindNodeRecursive(id, RepositoryNodes);
|
return FindNodeRecursive(id, RepositoryNodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
public RepositoryNode FindOrAddNodeByRepositoryPath(string repo, RepositoryNode parent, bool shouldMoveNode)
|
public RepositoryNode FindOrAddNodeByRepositoryPath(string repo, RepositoryNode parent, bool shouldMoveNode, bool save = true)
|
||||||
{
|
{
|
||||||
var normalized = repo.Replace('\\', '/').TrimEnd('/');
|
var normalized = repo.Replace('\\', '/').TrimEnd('/');
|
||||||
|
|
||||||
|
@ -478,11 +473,11 @@ namespace SourceGit.ViewModels
|
||||||
IsRepository = true,
|
IsRepository = true,
|
||||||
};
|
};
|
||||||
|
|
||||||
AddNode(node, parent, true);
|
AddNode(node, parent, save);
|
||||||
}
|
}
|
||||||
else if (shouldMoveNode)
|
else if (shouldMoveNode)
|
||||||
{
|
{
|
||||||
MoveNode(node, parent, true);
|
MoveNode(node, parent, save);
|
||||||
}
|
}
|
||||||
|
|
||||||
return node;
|
return node;
|
||||||
|
@ -514,13 +509,12 @@ namespace SourceGit.ViewModels
|
||||||
{
|
{
|
||||||
var container = FindNodeContainer(node, RepositoryNodes);
|
var container = FindNodeContainer(node, RepositoryNodes);
|
||||||
SortNodes(container);
|
SortNodes(container);
|
||||||
|
|
||||||
Save();
|
Save();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool AutoRemoveInvalidNode()
|
public void AutoRemoveInvalidNode()
|
||||||
{
|
{
|
||||||
return RemoveInvalidRepositoriesRecursive(RepositoryNodes);
|
RemoveInvalidRepositoriesRecursive(RepositoryNodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Save()
|
public void Save()
|
||||||
|
|
|
@ -53,20 +53,17 @@ namespace SourceGit.ViewModels
|
||||||
var parent = new DirectoryInfo(f.Path).Parent!.FullName.Replace('\\', '/').TrimEnd('/');
|
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, false);
|
||||||
}
|
}
|
||||||
else if (parent.StartsWith(normalizedRoot, StringComparison.Ordinal))
|
else if (parent.StartsWith(normalizedRoot, StringComparison.Ordinal))
|
||||||
{
|
{
|
||||||
var relative = parent.Substring(normalizedRoot.Length).TrimStart('/');
|
var relative = parent.Substring(normalizedRoot.Length).TrimStart('/');
|
||||||
var group = FindOrCreateGroupRecursive(Preferences.Instance.RepositoryNodes, relative);
|
var group = FindOrCreateGroupRecursive(Preferences.Instance.RepositoryNodes, relative);
|
||||||
Preferences.Instance.FindOrAddNodeByRepositoryPath(f.Path, group, false);
|
Preferences.Instance.FindOrAddNodeByRepositoryPath(f.Path, group, false, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Preferences.Instance.AutoRemoveInvalidNode();
|
Preferences.Instance.AutoRemoveInvalidNode();
|
||||||
|
|
||||||
// Sort & Save unconditionally after a complete rescan.
|
|
||||||
Preferences.Instance.SortAllNodes();
|
|
||||||
Preferences.Instance.Save();
|
Preferences.Instance.Save();
|
||||||
|
|
||||||
Welcome.Instance.Refresh();
|
Welcome.Instance.Refresh();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue