/// <summary>
        /// Loads external link definitions from the settings.
        /// </summary>
        public IReadOnlyList <ExternalLinkDefinition> Load(RepoDistSettings settings)
        {
            var cachedSettings = new RepoDistSettings(null, settings.SettingsCache, settings.SettingLevel);
            var xml            = cachedSettings.GetString(SettingName, null);

            return(LoadFromXmlString(xml));
        }
Example #2
0
        public void LoadFromSettings()
        {
            if (LowerPriority != null)
            {
                LowerPriority.LoadFromSettings();
            }

            var xml = Settings.GetString("RevisionLinkDefs", null);

            LinkDefs = LoadFromXmlString(xml);
        }
Example #3
0
        public void LoadFromSettings()
        {
            if (LowerPriority != null)
            {
                LowerPriority.LoadFromSettings();
            }

            LinkDefs = null;

            try
            {
                var          serializer   = new XmlSerializer(typeof(List <GitExtLinkDef>));
                StringReader stringReader = null;
                try
                {
                    var xml = Settings.GetString("RevisionLinkDefs", null);
                    if (xml == null)
                    {
                        LinkDefs = new List <GitExtLinkDef>();
                        return;
                    }
                    stringReader = new StringReader(xml);
                    using (var xmlReader = new XmlTextReader(stringReader))
                    {
                        stringReader = null;
                        LinkDefs     = serializer.Deserialize(xmlReader) as List <GitExtLinkDef>;
                    }
                }
                finally
                {
                    if (stringReader != null)
                    {
                        stringReader.Dispose();
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                LinkDefs = null;
            }

            if (LinkDefs == null)
            {
                LinkDefs = new List <GitExtLinkDef>();
            }
        }
Example #4
0
 public static void UsingContainer(RepoDistSettings aSettingsContainer, Action action)
 {
     SettingsContainer.LockedAction(() =>
     {
         var oldSC = SettingsContainer;
         try
         {
             _SettingsContainer = aSettingsContainer;
             action();
         }
         finally
         {
             _SettingsContainer = oldSC;
             //refresh settings if needed
             SettingsContainer.GetString(string.Empty, null);
         }
     }
                                    );
 }
Example #5
0
        public void SetUp()
        {
            _executable = new MockExecutable();

            // Work around: When running unittest, Application.UserAppDataPath always points to
            // %APPDATA%Roaming\Microsoft Corporation\Microsoft.TestHost.x86
            // We need to correct it to %APPDATA%\GitExtensions\GitExtensions for v3 at least
            var userAppDataPath  = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
            var settingPath      = Path.Combine(userAppDataPath, "GitExtensions\\GitExtensions\\GitExtensions.settings");
            var settingContainer = new RepoDistSettings(null, GitExtSettingsCache.FromCache(settingPath), SettingLevel.Unknown);

            _appPath = Path.Combine(settingContainer.GetString("gitbindir", ""), "git.exe");

            // Execute process in GitExtension working directory, so that git will return success exit-code
            // git always return non-zero exit code when run git reset outside of git repository
            // NUnit working directory always default to MS test host
            var workingDir = Path.GetDirectoryName(Assembly.GetAssembly(typeof(ExecutableExtensionsTests)).Location);

            _gitExecutable = new Executable(_appPath, workingDir);
        }
 /// <summary>
 /// Loads external link definitions from the settings.
 /// </summary>
 public IReadOnlyList<ExternalLinkDefinition>? Load(RepoDistSettings settings)
 {
     var xml = settings.GetString(SettingName, null);
     return LoadFromXmlString(xml);
 }