Beispiel #1
0
 internal void Merge(Ignores ignore)
 {
     Extensions        = SafeMerge(Extensions, ignore.Extensions);
     FilePatterns      = SafeMerge(FilePatterns, ignore.FilePatterns);
     DirectoryPatterns = SafeMerge(DirectoryPatterns, ignore.DirectoryPatterns);
     Patterns          = SafeMerge(Patterns, ignore.Patterns);
 }
Beispiel #2
0
 public Directives()
 {
     Ignore = new Ignores();
     Externals = new Dictionary<string, Extern>();
 }
Beispiel #3
0
 internal void Merge(Ignores ignore)
 {
     if (ignore.Extensions != null)
         Extensions = Extensions.Concat(ignore.Extensions).ToArray();
     if (ignore.RegexFilePatterns != null)
         RegexFilePatterns = RegexFilePatterns.Concat(ignore.RegexFilePatterns).ToArray();
     if (ignore.RegexDirectoryPatterns != null)
         RegexDirectoryPatterns = RegexDirectoryPatterns.Concat(ignore.RegexDirectoryPatterns).ToArray();
     if (ignore.Directories != null)
         Directories = Directories.Concat(ignore.Directories).ToArray();
 }
Beispiel #4
0
        public Directives(JsonReader reader)
        {
            Ignore    = new Ignores();
            Externals = new Dictionary <string, Extern>();
            string currentProperty = null;

            while (reader.Read())
            {
                switch (reader.TokenType)
                {
                case JsonToken.PropertyName:
                    currentProperty = reader.Value.ToString();
                    break;

                case JsonToken.String:
                    switch (currentProperty)
                    {
                    case "DefaultCompression":
                        DefaultCompression = reader.Value.ToString();
                        break;

                    case "ExternalMerge":
                        ExternalMerge = reader.Value.ToString();
                        break;

                    case "ExternalMerge2Way":
                        ExternalMerge2Way = reader.Value.ToString();
                        break;

                    case "ExternalDiff":
                        ExternalDiff = reader.Value.ToString();
                        break;

                    case "UserName":
                        UserName = reader.Value.ToString();
                        break;

                    case "ObjectStorePath":
                        ObjectStorePath = reader.Value.ToString();
                        break;

                    default:
                        Tokens[currentProperty] = Newtonsoft.Json.Linq.JToken.FromObject(reader.Value);
                        break;
                    }
                    break;

                case JsonToken.Boolean:
                    if (currentProperty == "NonBlockingDiff")
                    {
                        NonBlockingDiff = System.Boolean.Parse(reader.Value.ToString());
                    }
                    else if (currentProperty == "UseTortoiseMerge")
                    {
                        UseTortoiseMerge = System.Boolean.Parse(reader.Value.ToString());
                    }
                    else
                    {
                        Tokens[currentProperty] = Newtonsoft.Json.Linq.JToken.FromObject(reader.Value);
                    }
                    break;

                case JsonToken.EndObject:
                    return;

                case JsonToken.StartObject:
                    if (currentProperty == "Ignore")
                    {
                        Ignore = new Ignores(reader);
                    }
                    else if (currentProperty == "Include")
                    {
                        Include = new Ignores(reader);
                    }
                    else if (currentProperty == "Svn")
                    {
                        Svn = new SvnCompatibility(reader);
                    }
                    else if (currentProperty == "Externals")
                    {
                        Externals = new Dictionary <string, Extern>();
                        while (reader.Read())
                        {
                            if (reader.TokenType == JsonToken.PropertyName)
                            {
                                currentProperty = reader.Value.ToString();
                            }
                            else if (reader.TokenType == JsonToken.StartObject)
                            {
                                Externals[currentProperty] = new Extern(reader);
                            }
                            else if (reader.TokenType == JsonToken.EndObject)
                            {
                                break;
                            }
                            else
                            {
                                throw new Exception();
                            }
                        }
                    }
                    else
                    {
                        Tokens[currentProperty] = Newtonsoft.Json.Linq.JObject.Load(reader);
                    }
                    break;

                case JsonToken.StartArray:
                    if (currentProperty == "TagPresets")
                    {
                        TagPresets = new List <TagPreset>();
                        while (reader.Read())
                        {
                            if (reader.TokenType == JsonToken.StartObject)
                            {
                                TagPreset tag = new TagPreset(reader);
                                if (!String.IsNullOrEmpty(tag.Tag) &&
                                    tag.Tag[0] == '#' &&
                                    !tag.Tag.Contains(' ') &&
                                    !tag.Tag.Contains('\t'))
                                {
                                    TagPresets.Add(tag);
                                }
                            }
                            else if (reader.TokenType == JsonToken.EndArray)
                            {
                                break;
                            }
                            else
                            {
                                throw new Exception();
                            }
                        }
                    }
                    else if (currentProperty == "Sparse")
                    {
                        Sparse = JSONHelper.ReadStringList(reader);
                    }
                    else if (currentProperty == "Excludes")
                    {
                        Excludes = JSONHelper.ReadStringList(reader);
                    }
                    else if (currentProperty == "Hooks")
                    {
                        Hooks = Newtonsoft.Json.Linq.JArray.Load(reader);
                    }
                    else
                    {
                        Tokens[currentProperty] = Newtonsoft.Json.Linq.JArray.Load(reader);
                    }
                    break;

                default:
                    throw new Exception("Unhandled setup in configuration file");
                    break;
                }
            }
        }
Beispiel #5
0
 public Directives()
 {
     Ignore     = new Ignores();
     Externals  = new Dictionary <string, Extern>();
     TagPresets = new List <TagPreset>();
 }