diff --git a/pkg/gui/controllers/commits_files_controller.go b/pkg/gui/controllers/commits_files_controller.go index e4a7cba68..699360b63 100644 --- a/pkg/gui/controllers/commits_files_controller.go +++ b/pkg/gui/controllers/commits_files_controller.go @@ -248,7 +248,11 @@ func (self *CommitFilesController) openCopyMenu() error { copyAbsolutePathItem := &types.MenuItem{ Label: self.c.Tr.CopyAbsoluteFilePath, OnPress: func() error { - if err := self.c.OS().CopyToClipboard(filepath.Join(self.c.Git().RepoPaths.RepoPath(), node.GetPath())); err != nil { + absPath, err := filepath.Abs(node.GetPath()) + if err != nil { + return err + } + if err := self.c.OS().CopyToClipboard(absPath); err != nil { return err } self.c.Toast(self.c.Tr.FilePathCopiedToast) diff --git a/pkg/gui/controllers/files_controller.go b/pkg/gui/controllers/files_controller.go index 6686a7e9d..ee856ddb5 100644 --- a/pkg/gui/controllers/files_controller.go +++ b/pkg/gui/controllers/files_controller.go @@ -1199,7 +1199,11 @@ func (self *FilesController) openCopyMenu() error { copyAbsolutePathItem := &types.MenuItem{ Label: self.c.Tr.CopyAbsoluteFilePath, OnPress: func() error { - if err := self.c.OS().CopyToClipboard(filepath.Join(self.c.Git().RepoPaths.RepoPath(), node.GetPath())); err != nil { + absPath, err := filepath.Abs(node.GetPath()) + if err != nil { + return err + } + if err := self.c.OS().CopyToClipboard(absPath); err != nil { return err } self.c.Toast(self.c.Tr.FilePathCopiedToast) diff --git a/pkg/integration/tests/diff/copy_to_clipboard.go b/pkg/integration/tests/diff/copy_to_clipboard.go index 0dd53007e..e28a7c0bc 100644 --- a/pkg/integration/tests/diff/copy_to_clipboard.go +++ b/pkg/integration/tests/diff/copy_to_clipboard.go @@ -2,7 +2,6 @@ package diff import ( "os" - "path/filepath" "github.com/jesseduffield/lazygit/pkg/config" . "github.com/jesseduffield/lazygit/pkg/integration/components" @@ -90,10 +89,7 @@ var CopyToClipboard = NewIntegrationTest(NewIntegrationTestArgs{ t.ExpectToast(Equals("File path copied to clipboard")) worktreeDir, _ := os.Getwd() // On windows the following path would have backslashes, but we don't run integration tests on windows yet. - /* EXPECTED: expectClipboard(t, Equals(worktreeDir+"/dir/file1")) - ACTUAL: */ - expectClipboard(t, Equals(filepath.Dir(worktreeDir)+"/repo/dir/file1")) }) }). Press(keys.Files.CopyFileInfoToClipboard). diff --git a/pkg/integration/tests/file/copy_menu.go b/pkg/integration/tests/file/copy_menu.go index 5474614f6..16dd6c19b 100644 --- a/pkg/integration/tests/file/copy_menu.go +++ b/pkg/integration/tests/file/copy_menu.go @@ -2,7 +2,6 @@ package file import ( "os" - "path/filepath" "github.com/jesseduffield/lazygit/pkg/config" . "github.com/jesseduffield/lazygit/pkg/integration/components" @@ -139,10 +138,7 @@ var CopyMenu = NewIntegrationTest(NewIntegrationTestArgs{ worktreeDir, _ := os.Getwd() // On windows the following path would have backslashes, but we don't run integration tests on windows yet. - /* EXPECTED: expectClipboard(t, Equals(worktreeDir+"/dir/1-unstaged_file")) - ACTUAL: */ - expectClipboard(t, Equals(filepath.Dir(worktreeDir)+"/repo/dir/1-unstaged_file")) }) // Selected path diff on a single (unstaged) file