diff options
author | Mike Krüger <mikkrg@microsoft.com> | 2019-09-17 12:18:25 +0300 |
---|---|---|
committer | Mike Krüger <mikkrg@microsoft.com> | 2019-09-20 11:56:37 +0300 |
commit | ffc791b0cd0323073c83ff650d7a75492405f514 (patch) | |
tree | 962aac6161fa59b0fbc712746c2631f07ce5631b /main/src/addins | |
parent | 778ffeb863465686a51a9e307a366b59a4063fa4 (diff) |
[VersionControl] Refactored status callback handler to simplify state
parsing a bit.
Diffstat (limited to 'main/src/addins')
2 files changed, 10 insertions, 17 deletions
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git.ClientLibrary/MonoDevelop.VersionControl.Git.ClientLibrary/Status/GitStatusCallbackHandler.V1_Handler.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git.ClientLibrary/MonoDevelop.VersionControl.Git.ClientLibrary/Status/GitStatusCallbackHandler.V1_Handler.cs index 35ad7fedda..04e8fbabed 100644 --- a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git.ClientLibrary/MonoDevelop.VersionControl.Git.ClientLibrary/Status/GitStatusCallbackHandler.V1_Handler.cs +++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git.ClientLibrary/MonoDevelop.VersionControl.Git.ClientLibrary/Status/GitStatusCallbackHandler.V1_Handler.cs @@ -33,17 +33,13 @@ namespace MonoDevelop.VersionControl.Git.ClientLibrary { protected override bool TryParseState (string data, int start, ref int end, out GitFileState state, out string path) { - var (sx, sy, origPath, path2) = ParsePath (data, start, end); + var (state2, path2) = ParsePath (data, start, end); + state = state2; path = path2; - if (origPath == null) { - state = GitFileState.CreateSimpleState (GetState (sx, sy)); - } else { - state = GitFileState.CreateRenamedState (GetState (sx, sy), GitSubmoduleState.NoSubmodule, 0, 0, 0, origPath, 0); - } return true; } - internal static (char sx, char sy, string origPath, string path) ParsePath (string text, int from, int to) + internal static (GitFileState state, string path) ParsePath (string text, int from, int to) { // format to parse is: // XY PATH @@ -51,18 +47,17 @@ namespace MonoDevelop.VersionControl.Git.ClientLibrary char sx = text [from]; char sy = text [from + 1]; - string origPath = null; - string path = null; const int headerLength = 3; + string path; var arrowIdx = text.IndexOf (" -> ", from + headerLength, to - from - headerLength, StringComparison.Ordinal); if (arrowIdx >= 0) { - origPath = text.Substring (from + headerLength, arrowIdx - from - headerLength); + var origPath = text.Substring (from + headerLength, arrowIdx - from - headerLength); const int arrowLength = 4; // " -> ".Length; path = text.Substring (arrowIdx + arrowLength, to - arrowIdx - arrowLength); - } else { - path = text.Substring (from + headerLength, to - from - headerLength); - } - return (sx, sy, origPath, path); + return (GitFileState.CreateRenamedState (GetState (sx, sy), GitSubmoduleState.NoSubmodule, 0, 0, 0, origPath, 0), path); + } + path = text.Substring (from + headerLength, to - from - headerLength); + return (GitFileState.CreateSimpleState (GetState (sx, sy)), path); } } } diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git.ClientLibrary/MonoDevelop.VersionControl.Git.ClientLibrary/Status/GitStatusCallbackHandler.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git.ClientLibrary/MonoDevelop.VersionControl.Git.ClientLibrary/Status/GitStatusCallbackHandler.cs index db55b9abb0..cdfe1ddcab 100644 --- a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git.ClientLibrary/MonoDevelop.VersionControl.Git.ClientLibrary/Status/GitStatusCallbackHandler.cs +++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Git.ClientLibrary/MonoDevelop.VersionControl.Git.ClientLibrary/Status/GitStatusCallbackHandler.cs @@ -38,9 +38,7 @@ namespace MonoDevelop.VersionControl.Git.ClientLibrary { protected readonly static GitFileState IgnoredState = GitFileState.CreateSimpleState (GitStatusCode.Ignored); protected readonly static GitFileState UntrackedState = GitFileState.CreateSimpleState (GitStatusCode.Untracked); - - - Dictionary<string, GitFileState> fileList = new Dictionary<string, GitFileState> (); + readonly Dictionary<string, GitFileState> fileList = new Dictionary<string, GitFileState> (); public Dictionary<string, GitFileState> FileList { get { |