public bool Equals(ConfigBranch other) { return (String.Equals(name, other.name) && remote.Equals(other.remote) ); }
private static GitBranch GetLocalGitBranch(ConfigBranch x) { var branchName = x.Name; var trackingName = x.IsTracking ? x.Remote.Value.Name + "/" + branchName : null; return(new GitBranch(branchName, trackingName)); }
private void UpdateLocalBranches(Dictionary <string, ConfigBranch> branches, NPath path, IEnumerable <ConfigBranch> configBranches, string prefix) { foreach (var file in path.Files()) { var branchName = prefix + file.FileName; var branch = configBranches.Where(x => x.Name == branchName).Select(x => x as ConfigBranch?).FirstOrDefault(); if (!branch.HasValue) { branch = new ConfigBranch(branchName); } branches.Add(branchName, branch.Value); } foreach (var dir in path.Directories()) { UpdateLocalBranches(branches, dir, configBranches, prefix + dir.FileName + "/"); } }
private void GetCurrentBranchAndRemote(out ConfigBranch?branch, out ConfigRemote?remote) { branch = null; remote = null; var head = GetCurrentHead(); if (head.StartsWith("ref:")) { var branchName = head.Substring(head.IndexOf("refs/heads/") + "refs/heads/".Length); branch = config.GetBranch(branchName); if (!branch.HasValue) { branch = new ConfigBranch(branchName); } } var defaultRemote = "origin"; if (branch.HasValue && branch.Value.IsTracking) { remote = branch.Value.Remote; } if (!remote.HasValue) { remote = config.GetRemote(defaultRemote); } if (!remote.HasValue) { var configRemotes = config.GetRemotes().ToArray(); if (configRemotes.Any()) { remote = configRemotes.FirstOrDefault(); } } }
public void UpdateData(IRepositoryInfoCacheData data) { var now = DateTimeOffset.Now; var isUpdated = false; if (forcedInvalidation || !Nullable.Equals(currentGitRemote, data.CurrentGitRemote)) { currentGitRemote = data.CurrentGitRemote ?? GitRemote.Default; isUpdated = true; } if (forcedInvalidation || !Nullable.Equals(currentGitBranch, data.CurrentGitBranch)) { currentGitBranch = data.CurrentGitBranch ?? GitBranch.Default; isUpdated = true; } if (forcedInvalidation || !Nullable.Equals(currentConfigRemote, data.CurrentConfigRemote)) { currentConfigRemote = data.CurrentConfigRemote ?? ConfigRemote.Default; isUpdated = true; } if (forcedInvalidation || !Nullable.Equals(currentConfigBranch, data.CurrentConfigBranch)) { currentConfigBranch = data.CurrentConfigBranch ?? ConfigBranch.Default; isUpdated = true; } if (forcedInvalidation || !String.Equals(currentHead, data.CurrentHead)) { currentHead = data.CurrentHead; isUpdated = true; } SaveData(now, isUpdated); }
private static GitBranch GetRemoteGitBranch(ConfigBranch x) => new GitBranch(x.Remote.Value.Name + "/" + x.Name, "[None]");