예제 #1
0
        private void LoadRemotesFromConfig()
        {
            Logger.Trace("LoadRemotesFromConfig");

            var remotes        = config.GetRemotes().ToArray().ToDictionary(x => x.Name, x => x);
            var remoteBranches = new Dictionary <string, Dictionary <string, ConfigBranch> >();

            foreach (var remote in remotes.Keys)
            {
                var branchList = new Dictionary <string, ConfigBranch>();
                var basedir    = repositoryPaths.RemotesPath.Combine(remote);
                if (basedir.Exists())
                {
                    foreach (var branch in
                             basedir.Files(true)
                             .Select(x => x.RelativeTo(basedir))
                             .Select(x => x.ToString(SlashMode.Forward)))
                    {
                        branchList.Add(branch, new ConfigBranch {
                            Name = branch, Remote = remotes[remote]
                        });
                    }

                    remoteBranches.Add(remote, branchList);
                }
            }

            Logger.Trace("OnRemoteBranchListUpdated {0} remotes", remotes.Count);
            OnRemoteBranchListUpdated?.Invoke(remotes, remoteBranches);
        }
예제 #2
0
 public void Reset()
 {
     OnIsBusy.Reset();
     OnIsNotBusy.Reset();
     OnStatusUpdated.Reset();
     OnLocksUpdated.Reset();
     OnCurrentBranchAndRemoteUpdated.Reset();
     OnHeadUpdated.Reset();
     OnLocalBranchListUpdated.Reset();
     OnRemoteBranchListUpdated.Reset();
     OnLocalBranchUpdated.Reset();
     OnLocalBranchAdded.Reset();
     OnLocalBranchRemoved.Reset();
     OnRemoteBranchAdded.Reset();
     OnRemoteBranchRemoved.Reset();
 }