Skip to content

Commit f5f2464

Browse files
authored
Revert #4313 (Skip post-checkout hook when discarding changes) (#4407)
@jesseduffield: > Let's revert this PR, given that, as @TimShilov says, the post-checkout hook will receive a flag stating whether the checkout was for a file or a branch, meaning it's within the user's power to just update the hook script to only run on branch checkouts if desired.
2 parents b3b8223 + cf27399 commit f5f2464

File tree

3 files changed

+14
-22
lines changed

3 files changed

+14
-22
lines changed

pkg/commands/git_commands/rebase_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ func TestRebaseDiscardOldFileChanges(t *testing.T) {
149149
runner: oscommands.NewFakeRunner(t).
150150
ExpectGitArgs([]string{"rebase", "--interactive", "--autostash", "--keep-empty", "--no-autosquash", "--rebase-merges", "abcdef"}, "", nil).
151151
ExpectGitArgs([]string{"cat-file", "-e", "HEAD^:test999.txt"}, "", nil).
152-
ExpectGitArgs([]string{"-c", disableHooksFlag, "checkout", "HEAD^", "--", "test999.txt"}, "", nil).
152+
ExpectGitArgs([]string{"checkout", "HEAD^", "--", "test999.txt"}, "", nil).
153153
ExpectGitArgs([]string{"commit", "--amend", "--no-edit", "--allow-empty"}, "", nil).
154154
ExpectGitArgs([]string{"rebase", "--continue"}, "", nil),
155155
test: func(err error) {

pkg/commands/git_commands/working_tree.go

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -113,10 +113,6 @@ func (self *WorkingTreeCommands) BeforeAndAfterFileForRename(file *models.File)
113113
return beforeFile, afterFile, nil
114114
}
115115

116-
func newCheckoutCommand() *GitCommandBuilder {
117-
return NewGitCmd("checkout").Config(fmt.Sprintf("core.hooksPath=%s", os.DevNull))
118-
}
119-
120116
// DiscardAllFileChanges directly
121117
func (self *WorkingTreeCommands) DiscardAllFileChanges(file *models.File) error {
122118
if file.IsRename() {
@@ -138,7 +134,7 @@ func (self *WorkingTreeCommands) DiscardAllFileChanges(file *models.File) error
138134

139135
if file.ShortStatus == "AA" {
140136
if err := self.cmd.New(
141-
newCheckoutCommand().Arg("--ours", "--", file.Name).ToArgv(),
137+
NewGitCmd("checkout").Arg("--ours", "--", file.Name).ToArgv(),
142138
).Run(); err != nil {
143139
return err
144140
}
@@ -197,7 +193,7 @@ func (self *WorkingTreeCommands) DiscardUnstagedDirChanges(node IFileNode) error
197193
return err
198194
}
199195

200-
cmdArgs := newCheckoutCommand().Arg("--", node.GetPath()).ToArgv()
196+
cmdArgs := NewGitCmd("checkout").Arg("--", node.GetPath()).ToArgv()
201197
if err := self.cmd.New(cmdArgs).Run(); err != nil {
202198
return err
203199
}
@@ -230,7 +226,7 @@ func (self *WorkingTreeCommands) RemoveUntrackedDirFiles(node IFileNode) error {
230226
}
231227

232228
func (self *WorkingTreeCommands) DiscardUnstagedFileChanges(file *models.File) error {
233-
cmdArgs := newCheckoutCommand().Arg("--", file.Name).ToArgv()
229+
cmdArgs := NewGitCmd("checkout").Arg("--", file.Name).ToArgv()
234230
return self.cmd.New(cmdArgs).Run()
235231
}
236232

@@ -323,15 +319,15 @@ func (self *WorkingTreeCommands) ShowFileDiffCmdObj(from string, to string, reve
323319

324320
// CheckoutFile checks out the file for the given commit
325321
func (self *WorkingTreeCommands) CheckoutFile(commitHash, fileName string) error {
326-
cmdArgs := newCheckoutCommand().Arg(commitHash, "--", fileName).
322+
cmdArgs := NewGitCmd("checkout").Arg(commitHash, "--", fileName).
327323
ToArgv()
328324

329325
return self.cmd.New(cmdArgs).Run()
330326
}
331327

332328
// DiscardAnyUnstagedFileChanges discards any unstaged file changes via `git checkout -- .`
333329
func (self *WorkingTreeCommands) DiscardAnyUnstagedFileChanges() error {
334-
cmdArgs := newCheckoutCommand().Arg("--", ".").
330+
cmdArgs := NewGitCmd("checkout").Arg("--", ".").
335331
ToArgv()
336332

337333
return self.cmd.New(cmdArgs).Run()

pkg/commands/git_commands/working_tree_test.go

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package git_commands
22

33
import (
4-
"fmt"
5-
"os"
64
"testing"
75

86
"github.com/go-errors/errors"
@@ -12,8 +10,6 @@ import (
1210
"github.com/stretchr/testify/assert"
1311
)
1412

15-
var disableHooksFlag = fmt.Sprintf("core.hooksPath=%s", os.DevNull)
16-
1713
func TestWorkingTreeStageFile(t *testing.T) {
1814
runner := oscommands.NewFakeRunner(t).
1915
ExpectGitArgs([]string{"add", "--", "test.txt"}, "", nil)
@@ -117,7 +113,7 @@ func TestWorkingTreeDiscardAllFileChanges(t *testing.T) {
117113
},
118114
removeFile: func(string) error { return nil },
119115
runner: oscommands.NewFakeRunner(t).
120-
ExpectGitArgs([]string{"-c", disableHooksFlag, "checkout", "--", "test"}, "", errors.New("error")),
116+
ExpectGitArgs([]string{"checkout", "--", "test"}, "", errors.New("error")),
121117
expectedError: "error",
122118
},
123119
{
@@ -129,7 +125,7 @@ func TestWorkingTreeDiscardAllFileChanges(t *testing.T) {
129125
},
130126
removeFile: func(string) error { return nil },
131127
runner: oscommands.NewFakeRunner(t).
132-
ExpectGitArgs([]string{"-c", disableHooksFlag, "checkout", "--", "test"}, "", nil),
128+
ExpectGitArgs([]string{"checkout", "--", "test"}, "", nil),
133129
expectedError: "",
134130
},
135131
{
@@ -142,7 +138,7 @@ func TestWorkingTreeDiscardAllFileChanges(t *testing.T) {
142138
removeFile: func(string) error { return nil },
143139
runner: oscommands.NewFakeRunner(t).
144140
ExpectGitArgs([]string{"reset", "--", "test"}, "", nil).
145-
ExpectGitArgs([]string{"-c", disableHooksFlag, "checkout", "--", "test"}, "", nil),
141+
ExpectGitArgs([]string{"checkout", "--", "test"}, "", nil),
146142
expectedError: "",
147143
},
148144
{
@@ -155,7 +151,7 @@ func TestWorkingTreeDiscardAllFileChanges(t *testing.T) {
155151
removeFile: func(string) error { return nil },
156152
runner: oscommands.NewFakeRunner(t).
157153
ExpectGitArgs([]string{"reset", "--", "test"}, "", nil).
158-
ExpectGitArgs([]string{"-c", disableHooksFlag, "checkout", "--", "test"}, "", nil),
154+
ExpectGitArgs([]string{"checkout", "--", "test"}, "", nil),
159155
expectedError: "",
160156
},
161157
{
@@ -432,7 +428,7 @@ func TestWorkingTreeCheckoutFile(t *testing.T) {
432428
commitHash: "11af912",
433429
fileName: "test999.txt",
434430
runner: oscommands.NewFakeRunner(t).
435-
ExpectGitArgs([]string{"-c", disableHooksFlag, "checkout", "11af912", "--", "test999.txt"}, "", nil),
431+
ExpectGitArgs([]string{"checkout", "11af912", "--", "test999.txt"}, "", nil),
436432
test: func(err error) {
437433
assert.NoError(t, err)
438434
},
@@ -442,7 +438,7 @@ func TestWorkingTreeCheckoutFile(t *testing.T) {
442438
commitHash: "11af912",
443439
fileName: "test999.txt",
444440
runner: oscommands.NewFakeRunner(t).
445-
ExpectGitArgs([]string{"-c", disableHooksFlag, "checkout", "11af912", "--", "test999.txt"}, "", errors.New("error")),
441+
ExpectGitArgs([]string{"checkout", "11af912", "--", "test999.txt"}, "", errors.New("error")),
446442
test: func(err error) {
447443
assert.Error(t, err)
448444
},
@@ -472,7 +468,7 @@ func TestWorkingTreeDiscardUnstagedFileChanges(t *testing.T) {
472468
testName: "valid case",
473469
file: &models.File{Name: "test.txt"},
474470
runner: oscommands.NewFakeRunner(t).
475-
ExpectGitArgs([]string{"-c", disableHooksFlag, "checkout", "--", "test.txt"}, "", nil),
471+
ExpectGitArgs([]string{"checkout", "--", "test.txt"}, "", nil),
476472
test: func(err error) {
477473
assert.NoError(t, err)
478474
},
@@ -499,7 +495,7 @@ func TestWorkingTreeDiscardAnyUnstagedFileChanges(t *testing.T) {
499495
{
500496
testName: "valid case",
501497
runner: oscommands.NewFakeRunner(t).
502-
ExpectGitArgs([]string{"-c", disableHooksFlag, "checkout", "--", "."}, "", nil),
498+
ExpectGitArgs([]string{"checkout", "--", "."}, "", nil),
503499
test: func(err error) {
504500
assert.NoError(t, err)
505501
},

0 commit comments

Comments
 (0)