Documentation
¶
Overview ¶
Package git wraps git commands and helpers used by lazyworktree.
Index ¶
- type NotifyFn
- type NotifyOnceFn
- type Service
- func (s *Service) ApplyDelta(ctx context.Context, diff string) string
- func (s *Service) BuildThreePartDiff(ctx context.Context, path string, cfg *config.AppConfig) string
- func (s *Service) CherryPickCommit(ctx context.Context, commitSHA, targetPath string) (bool, error)
- func (s *Service) CreateWorktreeFromPR(ctx context.Context, prNumber int, ...) bool
- func (s *Service) ExecuteCommands(ctx context.Context, cmdList []string, cwd string, env map[string]string) error
- func (s *Service) FetchAllOpenIssues(ctx context.Context) ([]*models.IssueInfo, error)
- func (s *Service) FetchAllOpenPRs(ctx context.Context) ([]*models.PRInfo, error)
- func (s *Service) FetchCIStatus(ctx context.Context, prNumber int, branch string) ([]*models.CICheck, error)
- func (s *Service) FetchPRForWorktree(ctx context.Context, worktreePath string) *models.PRInfo
- func (s *Service) FetchPRMap(ctx context.Context) (map[string]*models.PRInfo, error)
- func (s *Service) GetCommitFiles(ctx context.Context, commitSHA, worktreePath string) ([]models.CommitFile, error)
- func (s *Service) GetMainBranch(ctx context.Context) string
- func (s *Service) GetMainWorktreePath(ctx context.Context) string
- func (s *Service) GetWorktrees(ctx context.Context) ([]*models.WorktreeInfo, error)
- func (s *Service) RenameWorktree(ctx context.Context, oldPath, newPath, oldBranch, newBranch string) bool
- func (s *Service) ResolveRepoName(ctx context.Context) string
- func (s *Service) RunCommandChecked(ctx context.Context, args []string, cwd, errorPrefix string) bool
- func (s *Service) RunGit(ctx context.Context, args []string, cwd string, okReturncodes []int, ...) string
- func (s *Service) SetDebugLogger(logger *log.Logger)
- func (s *Service) SetDeltaArgs(args []string)
- func (s *Service) SetDeltaPath(path string)
- func (s *Service) UseDelta() bool
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type NotifyOnceFn ¶
NotifyOnceFn reports deduplicated notification messages.
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
Service orchestrates git and helper commands for the UI.
func NewService ¶
func NewService(notify NotifyFn, notifyOnce NotifyOnceFn) *Service
NewService constructs a Service and sets up concurrency limits.
func (*Service) ApplyDelta ¶
ApplyDelta pipes diff output through delta if available ApplyDelta pipes diff output through delta when available.
func (*Service) BuildThreePartDiff ¶
func (s *Service) BuildThreePartDiff(ctx context.Context, path string, cfg *config.AppConfig) string
BuildThreePartDiff assembles a comprehensive diff showing staged, modified, and untracked sections. The output is truncated according to cfg.MaxDiffChars and cfg.MaxUntrackedDiffs settings. Part 1: Staged changes (git diff --cached) Part 2: Unstaged changes (git diff) Part 3: Untracked files (limited by MaxUntrackedDiffs)
func (*Service) CherryPickCommit ¶ added in v1.12.0
CherryPickCommit applies a commit to a target worktree. Returns true on success, false on failure (including conflicts).
func (*Service) CreateWorktreeFromPR ¶ added in v1.2.0
func (s *Service) CreateWorktreeFromPR(ctx context.Context, prNumber int, remoteBranch, localBranch, targetPath string) bool
CreateWorktreeFromPR creates a worktree from a PR's remote branch. It creates a detached worktree first, then uses gh/glab CLI to checkout the PR inside that worktree, which properly sets up fork remotes and tracking.
func (*Service) ExecuteCommands ¶
func (s *Service) ExecuteCommands(ctx context.Context, cmdList []string, cwd string, env map[string]string) error
ExecuteCommands runs provided shell commands sequentially inside the given working directory.
func (*Service) FetchAllOpenIssues ¶ added in v1.20.0
FetchAllOpenIssues fetches all open issues and returns them as a slice.
func (*Service) FetchAllOpenPRs ¶ added in v1.2.0
FetchAllOpenPRs fetches all open PRs/MRs and returns them as a slice.
func (*Service) FetchCIStatus ¶
func (s *Service) FetchCIStatus(ctx context.Context, prNumber int, branch string) ([]*models.CICheck, error)
FetchCIStatus fetches CI check statuses for a PR from GitHub or GitLab.
func (*Service) FetchPRForWorktree ¶ added in v1.13.0
FetchPRForWorktree fetches PR info for a specific worktree by running gh/glab in that directory. This correctly detects PRs even when the local branch name differs from the remote branch.
func (*Service) FetchPRMap ¶
FetchPRMap gathers PR/MR information via supported host APIs (GitHub or GitLab). Returns a map keyed by branch name to PRInfo. Detects the host automatically based on the repository's remote URL.
func (*Service) GetCommitFiles ¶ added in v1.17.0
func (s *Service) GetCommitFiles(ctx context.Context, commitSHA, worktreePath string) ([]models.CommitFile, error)
GetCommitFiles returns the list of files changed in a specific commit.
func (*Service) GetMainBranch ¶
GetMainBranch returns the main branch name for the current repository.
func (*Service) GetMainWorktreePath ¶
GetMainWorktreePath returns the path of the main worktree.
func (*Service) GetWorktrees ¶
GetWorktrees parses git worktree metadata and returns the list of worktrees. This method concurrently fetches status information for each worktree to improve performance. The first worktree in the list is marked as the main worktree.
func (*Service) RenameWorktree ¶
func (s *Service) RenameWorktree(ctx context.Context, oldPath, newPath, oldBranch, newBranch string) bool
RenameWorktree attempts to move and rename branches for a worktree migration.
func (*Service) ResolveRepoName ¶
ResolveRepoName resolves the repository name using various methods. ResolveRepoName returns the repository identifier for caching purposes.
func (*Service) RunCommandChecked ¶
func (s *Service) RunCommandChecked(ctx context.Context, args []string, cwd, errorPrefix string) bool
RunCommandChecked runs the provided git command and reports failures via notify callbacks.
func (*Service) RunGit ¶
func (s *Service) RunGit(ctx context.Context, args []string, cwd string, okReturncodes []int, strip, silent bool) string
RunGit executes a git command and optionally trims its output.
func (*Service) SetDebugLogger ¶ added in v1.4.0
SetDebugLogger attaches a logger for debug output.
func (*Service) SetDeltaArgs ¶ added in v1.4.0
SetDeltaArgs sets additional delta arguments used when formatting diffs.
func (*Service) SetDeltaPath ¶ added in v1.5.1
SetDeltaPath sets the path to delta executable and enables/disables based on empty string.