Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/main/src
diff options
context:
space:
mode:
authorMike Krüger <mikkrg@microsoft.com>2019-09-17 12:18:25 +0300
committerMike Krüger <mikkrg@microsoft.com>2019-09-20 11:56:37 +0300
commitffc791b0cd0323073c83ff650d7a75492405f514 (patch)
tree962aac6161fa59b0fbc712746c2631f07ce5631b /main/src
parent778ffeb863465686a51a9e307a366b59a4063fa4 (diff)
[VersionControl] Refactored status callback handler to simplify state
parsing a bit.
Diffstat (limited to 'main/src')
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl.Git.ClientLibrary/MonoDevelop.VersionControl.Git.ClientLibrary/Status/GitStatusCallbackHandler.V1_Handler.cs23
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl.Git.ClientLibrary/MonoDevelop.VersionControl.Git.ClientLibrary/Status/GitStatusCallbackHandler.cs4
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 {