/// <summary>
        /// Many SVN properties have values that are lists of new-line separated strings.
        /// This method tests if a list property has a given value as an element.
        /// </summary>
        public static bool HasListPropertyValue(this SvnCommand svnCommand, AbsolutePath path, string propertyName, string value)
        {
            var propertyValues = svnCommand.GetPropertyValues(path, propertyName);

            var output = propertyValues.Contains(value);

            return(output);
        }
        /// <summary>
        /// Many SVN properties have values that are sets of new-line separated strings.
        /// This method adds a value to that set.
        /// This method will not add the same value twice, as it checks if the value is already present in the set of values.
        /// </summary>
        public static void AddPropertyValue(this SvnCommand svnCommand, AbsolutePath path, string propertyName, string value)
        {
            var values = new List <string>(svnCommand.GetPropertyValues(path, propertyName));

            // Only add the value once.
            if (!values.Contains(value))
            {
                values.Add(value);

                svnCommand.SetPropertyValues(path, propertyName, values.ToArray());
            }
        }
        /// <summary>
        /// The SVN ignore property value is a set of new-line separated strings.
        /// Gets the set of values of the SVN ignore property.
        /// </summary>
        public static string[] GetSvnIgnoreValues(this SvnCommand svnCommand, AbsolutePath path)
        {
            var output = svnCommand.GetPropertyValues(path, SvnCommand.SvnIgnorePropertyName);

            return(output);
        }