mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-07-28 16:02:01 +03:00
Log when directory is changed
This commit is contained in:
@ -33,9 +33,9 @@ func (self *WorktreeCommands) Delete(worktreePath string, force bool) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (self *WorktreeCommands) Detach(worktreePath string) error {
|
func (self *WorktreeCommands) Detach(worktreePath string) error {
|
||||||
cmdArgs := NewGitCmd("checkout").Arg("--detach").WorktreePath(worktreePath).ToArgv()
|
cmdArgs := NewGitCmd("checkout").Arg("--detach").ToArgv()
|
||||||
|
|
||||||
return self.cmd.New(cmdArgs).Run()
|
return self.cmd.New(cmdArgs).SetWd(worktreePath).Run()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *WorktreeCommands) IsCurrentWorktree(w *models.Worktree) bool {
|
func (self *WorktreeCommands) IsCurrentWorktree(w *models.Worktree) bool {
|
||||||
|
@ -24,6 +24,9 @@ type ICmdObj interface {
|
|||||||
AddEnvVars(...string) ICmdObj
|
AddEnvVars(...string) ICmdObj
|
||||||
GetEnvVars() []string
|
GetEnvVars() []string
|
||||||
|
|
||||||
|
// sets the working directory
|
||||||
|
SetWd(string) ICmdObj
|
||||||
|
|
||||||
// runs the command and returns an error if any
|
// runs the command and returns an error if any
|
||||||
Run() error
|
Run() error
|
||||||
// runs the command and returns the output as a string, and an error if any
|
// runs the command and returns the output as a string, and an error if any
|
||||||
@ -142,6 +145,12 @@ func (self *CmdObj) GetEnvVars() []string {
|
|||||||
return self.cmd.Env
|
return self.cmd.Env
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (self *CmdObj) SetWd(wd string) ICmdObj {
|
||||||
|
self.cmd.Dir = wd
|
||||||
|
|
||||||
|
return self
|
||||||
|
}
|
||||||
|
|
||||||
func (self *CmdObj) DontLog() ICmdObj {
|
func (self *CmdObj) DontLog() ICmdObj {
|
||||||
self.dontLog = true
|
self.dontLog = true
|
||||||
return self
|
return self
|
||||||
|
@ -344,7 +344,7 @@ func (self *BranchesController) promptWorktreeBranchDelete(selectedBranch *model
|
|||||||
Title: fmt.Sprintf("Branch %s is checked out by worktree %s", selectedBranch.Name, worktree.Name()),
|
Title: fmt.Sprintf("Branch %s is checked out by worktree %s", selectedBranch.Name, worktree.Name()),
|
||||||
Items: []*types.MenuItem{
|
Items: []*types.MenuItem{
|
||||||
{
|
{
|
||||||
Label: "Switch to worktree " + worktree.Name(),
|
Label: "Switch to worktree",
|
||||||
OnPress: func() error {
|
OnPress: func() error {
|
||||||
return self.c.Helpers().Worktree.Switch(worktree, context.LOCAL_BRANCHES_CONTEXT_KEY)
|
return self.c.Helpers().Worktree.Switch(worktree, context.LOCAL_BRANCHES_CONTEXT_KEY)
|
||||||
},
|
},
|
||||||
|
@ -149,6 +149,8 @@ func (self *ReposHelper) DispatchSwitchTo(path string, reuse bool, errMsg string
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self.c.LogCommand(fmt.Sprintf("Changing directory to %s", path), false)
|
||||||
|
|
||||||
if err := os.Chdir(path); err != nil {
|
if err := os.Chdir(path); err != nil {
|
||||||
if os.IsNotExist(err) {
|
if os.IsNotExist(err) {
|
||||||
return self.c.ErrorMsg(errMsg)
|
return self.c.ErrorMsg(errMsg)
|
||||||
|
@ -72,7 +72,7 @@ func (self *WorktreeHelper) NewWorktree() error {
|
|||||||
if err := self.c.Git().Worktree.New(sanitizedBranchName(path), committish); err != nil {
|
if err := self.c.Git().Worktree.New(sanitizedBranchName(path), committish); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC})
|
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.WORKTREES, types.BRANCHES, types.FILES}})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
@ -122,7 +122,7 @@ func (self *WorktreeHelper) Remove(worktree *models.Worktree, force bool) error
|
|||||||
}
|
}
|
||||||
return self.c.ErrorMsg(errMessage)
|
return self.c.ErrorMsg(errMessage)
|
||||||
}
|
}
|
||||||
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.WORKTREES}})
|
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.WORKTREES, types.BRANCHES, types.FILES}})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
@ -132,6 +132,10 @@ func (self *WorktreeHelper) Detach(worktree *models.Worktree) error {
|
|||||||
return self.c.WithWaitingStatus(self.c.Tr.DetachingWorktree, func(gocui.Task) error {
|
return self.c.WithWaitingStatus(self.c.Tr.DetachingWorktree, func(gocui.Task) error {
|
||||||
self.c.LogAction(self.c.Tr.RemovingWorktree)
|
self.c.LogAction(self.c.Tr.RemovingWorktree)
|
||||||
|
|
||||||
return self.c.Git().Worktree.Detach(worktree.Path)
|
err := self.c.Git().Worktree.Detach(worktree.Path)
|
||||||
|
if err != nil {
|
||||||
|
return self.c.Error(err)
|
||||||
|
}
|
||||||
|
return self.c.Refresh(types.RefreshOptions{Mode: types.ASYNC, Scope: []types.RefreshableView{types.WORKTREES, types.BRANCHES, types.FILES}})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user