diff --git a/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/SettingsView.cs b/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/SettingsView.cs index eab6e2b0f..57a4543df 100644 --- a/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/SettingsView.cs +++ b/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/SettingsView.cs @@ -67,7 +67,6 @@ class SettingsView : Subview private const string DefaultRepositoryRemoteName = "origin"; [NonSerialized] private int newGitIgnoreRulesSelection = -1; - [NonSerialized] private ConfigRemote? activeRemote; [SerializeField] private string gitName; [SerializeField] private string gitEmail; @@ -94,6 +93,8 @@ public override void OnEnable() { base.OnEnable(); AttachHandlers(Repository); + + remoteHasChanged = true; } public override void OnDisable() @@ -114,8 +115,9 @@ public override void OnRepositoryChanged(IRepository oldRepository) DetachHandlers(oldRepository); AttachHandlers(Repository); - activeRemote = Repository.CurrentRemote; + remoteHasChanged = true; + Refresh(); } @@ -178,7 +180,7 @@ private void MaybeUpdateData() if (Repository == null) { - if (cachedUser == null || String.IsNullOrEmpty(cachedUser.Name)) + if ((cachedUser == null || String.IsNullOrEmpty(cachedUser.Name)) && GitClient != null) { var user = new User(); GitClient.GetConfig("user.name", GitConfigSource.User) @@ -221,6 +223,7 @@ private void MaybeUpdateData() if (remoteHasChanged) { remoteHasChanged = false; + var activeRemote = Repository.CurrentRemote; hasRemote = activeRemote.HasValue && !String.IsNullOrEmpty(activeRemote.Value.Url); if (!hasRemote) { @@ -245,7 +248,6 @@ private void ResetToDefaults() private void Repository_OnActiveRemoteChanged(string remote) { - activeRemote = Repository.CurrentRemote; remoteHasChanged = true; }