diff --git a/repo.go b/repo.go index dd327131..be3c7d57 100644 --- a/repo.go +++ b/repo.go @@ -348,7 +348,7 @@ func Reset(repoPath, rev string, opts ...ResetOptions) error { cmd.AddArgs("--hard") } - _, err := cmd.AddOptions(opt.CommandOptions).AddArgs("--end-of-options", rev).RunInDir(repoPath) + _, err := cmd.AddOptions(opt.CommandOptions).AddArgs(rev).RunInDir(repoPath) return err } diff --git a/repo_test.go b/repo_test.go index 7f4ef1c4..812faa27 100644 --- a/repo_test.go +++ b/repo_test.go @@ -11,6 +11,7 @@ import ( "testing" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestRepository(t *testing.T) { @@ -255,6 +256,38 @@ func TestRepository_Checkout(t *testing.T) { } } +func TestReset(t *testing.T) { + tests := []struct { + name string + rev string + opt ResetOptions + }{ + { + name: "soft reset", + rev: "978fb7f6388b49b532fbef8b856681cfa6fcaa0a", + }, + { + name: "hard reset", + rev: "978fb7f6388b49b532fbef8b856681cfa6fcaa0a", + opt: ResetOptions{ + Hard: true, + }, + }, + } + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + path := tempPath() + defer func() { _ = os.RemoveAll(path) }() + + err := Clone(testrepo.Path(), path) + require.NoError(t, err) + + err = Reset(path, test.rev, test.opt) + assert.NoError(t, err) + }) + } +} + func TestRepository_Reset(t *testing.T) { r, cleanup, err := setupTempRepo() if err != nil {