enhance: create branch on detached HEAD (#344)

This commit is contained in:
leo 2024-08-09 16:06:28 +08:00
parent c596427380
commit ed2d3279e1
No known key found for this signature in database
5 changed files with 5 additions and 5 deletions

View file

@ -39,7 +39,7 @@ namespace SourceGit.Commands
if (refName.StartsWith(PREFIX_DETACHED, StringComparison.Ordinal)) if (refName.StartsWith(PREFIX_DETACHED, StringComparison.Ordinal))
{ {
branch.IsHead = true; branch.IsDetachedHead = true;
} }
if (refName.StartsWith(PREFIX_LOCAL, StringComparison.Ordinal)) if (refName.StartsWith(PREFIX_LOCAL, StringComparison.Ordinal))

View file

@ -28,10 +28,10 @@ namespace SourceGit.Models
public string Head { get; set; } public string Head { get; set; }
public bool IsLocal { get; set; } public bool IsLocal { get; set; }
public bool IsCurrent { get; set; } public bool IsCurrent { get; set; }
public bool IsDetachedHead { get; set; }
public string Upstream { get; set; } public string Upstream { get; set; }
public BranchTrackStatus TrackStatus { get; set; } public BranchTrackStatus TrackStatus { get; set; }
public string Remote { get; set; } public string Remote { get; set; }
public bool IsHead { get; set; }
public string FriendlyName => IsLocal ? Name : $"{Remote}/{Name}"; public string FriendlyName => IsLocal ? Name : $"{Remote}/{Name}";
} }

View file

@ -189,7 +189,7 @@ namespace SourceGit.ViewModels
{ {
nodes.Sort((l, r) => nodes.Sort((l, r) =>
{ {
if (l.Backend is Models.Branch { IsHead: true }) if (l.Backend is Models.Branch { IsDetachedHead: true })
return -1; return -1;
if (l.Backend is Models.Branch) if (l.Backend is Models.Branch)

View file

@ -35,7 +35,7 @@ namespace SourceGit.ViewModels
public CreateBranch(Repository repo, Models.Branch branch) public CreateBranch(Repository repo, Models.Branch branch)
{ {
_repo = repo; _repo = repo;
_baseOnRevision = branch.FullName; _baseOnRevision = branch.IsDetachedHead ? branch.Head : branch.FullName;
if (!branch.IsLocal && repo.Branches.Find(x => x.IsLocal && x.Name == branch.Name) == null) if (!branch.IsLocal && repo.Branches.Find(x => x.IsLocal && x.Name == branch.Name) == null)
{ {

View file

@ -746,7 +746,7 @@ namespace SourceGit.ViewModels
} }
else else
{ {
limits += "--branches --remotes --tags"; limits += "--exclude=refs/stash --all";
} }
var commits = new Commands.QueryCommits(_fullpath, limits).Result(); var commits = new Commands.QueryCommits(_fullpath, limits).Result();