private void ParseName() { if (CompleteName.Length == 0 || !CompleteName.Contains("/")) { Name = CompleteName; return; } if (IsRemote) { Name = CompleteName.Substring(CompleteName.LastIndexOf("remotes/") + 8); return; } if (IsTag) { // we need the one containing ^{}, because it contains the reference var temp = CompleteName.Contains("^{}") ? CompleteName.Substring(0, CompleteName.Length - 3) : CompleteName; Name = temp.Substring(CompleteName.LastIndexOf("tags/") + 5); return; } if (IsHead) { Name = CompleteName.Substring(CompleteName.LastIndexOf("heads/") + 6); return; } Name = CompleteName.Substring(CompleteName.LastIndexOf("/") + 1); }
private void ParseName() { if (IsRemote) { Name = CompleteName.Substring(CompleteName.LastIndexOf("remotes/") + 8); } else if (IsTag) { // we need the one containing ^{}, because it contains the reference var temp = CompleteName.Contains(TagDereferenceSuffix) ? CompleteName.Substring(0, CompleteName.Length - TagDereferenceSuffix.Length) : CompleteName; Name = temp.Substring(CompleteName.LastIndexOf("tags/") + 5); } else if (IsHead) { Name = CompleteName.Substring(CompleteName.LastIndexOf("heads/") + 6); } else { //if we don't know ref type then we don't know if '/' is a valid ref character Name = CompleteName.SkipStr("refs/"); } if (Name.IsNullOrWhiteSpace()) { Name = CompleteName; } }