| 1377 | } |
| 1378 | |
| 1379 | func (s *WorktreeSuite) TestResetHardWithGitIgnore(c *C) { |
| 1380 | fs := memfs.New() |
| 1381 | w := &Worktree{ |
| 1382 | r: s.Repository, |
| 1383 | Filesystem: fs, |
| 1384 | } |
| 1385 | |
| 1386 | err := w.Checkout(&CheckoutOptions{}) |
| 1387 | c.Assert(err, IsNil) |
| 1388 | |
| 1389 | tf, err := fs.Create("newTestFile.txt") |
| 1390 | c.Assert(err, IsNil) |
| 1391 | _, err = tf.Write([]byte("testfile content")) |
| 1392 | c.Assert(err, IsNil) |
| 1393 | err = tf.Close() |
| 1394 | c.Assert(err, IsNil) |
| 1395 | _, err = w.Add("newTestFile.txt") |
| 1396 | c.Assert(err, IsNil) |
| 1397 | _, err = w.Commit("testcommit", &CommitOptions{Author: &object.Signature{Name: "name", Email: "email"}}) |
| 1398 | c.Assert(err, IsNil) |
| 1399 | |
| 1400 | err = fs.Remove("newTestFile.txt") |
| 1401 | c.Assert(err, IsNil) |
| 1402 | f, err := fs.Create(".gitignore") |
| 1403 | c.Assert(err, IsNil) |
| 1404 | _, err = f.Write([]byte("foo\n")) |
| 1405 | c.Assert(err, IsNil) |
| 1406 | _, err = f.Write([]byte("newTestFile.txt\n")) |
| 1407 | c.Assert(err, IsNil) |
| 1408 | err = f.Close() |
| 1409 | c.Assert(err, IsNil) |
| 1410 | |
| 1411 | status, err := w.Status() |
| 1412 | c.Assert(err, IsNil) |
| 1413 | c.Assert(status.IsClean(), Equals, false) |
| 1414 | |
| 1415 | err = w.Reset(&ResetOptions{Mode: HardReset}) |
| 1416 | c.Assert(err, IsNil) |
| 1417 | |
| 1418 | status, err = w.Status() |
| 1419 | c.Assert(err, IsNil) |
| 1420 | c.Assert(status.IsClean(), Equals, true) |
| 1421 | } |
| 1422 | |
| 1423 | func (s *WorktreeSuite) TestResetSparsely(c *C) { |
| 1424 | fs := memfs.New() |