You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

IndexModificationTimesTest.java 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package org.eclipse.jgit.lib;
  2. import static org.junit.Assert.assertTrue;
  3. import org.eclipse.jgit.api.Git;
  4. import org.eclipse.jgit.dircache.DirCache;
  5. import org.eclipse.jgit.dircache.DirCacheEntry;
  6. import org.junit.Test;
  7. public class IndexModificationTimesTest extends RepositoryTestCase {
  8. @Test
  9. public void testLastModifiedTimes() throws Exception {
  10. Git git = new Git(db);
  11. String path = "file";
  12. writeTrashFile(path, "content");
  13. String path2 = "file2";
  14. writeTrashFile(path2, "content2");
  15. git.add().addFilepattern(path).call();
  16. git.add().addFilepattern(path2).call();
  17. git.commit().setMessage("commit").call();
  18. DirCache dc = db.readDirCache();
  19. DirCacheEntry entry = dc.getEntry(path);
  20. DirCacheEntry entry2 = dc.getEntry(path);
  21. assertTrue("last modified shall not be zero!",
  22. entry.getLastModified() != 0);
  23. assertTrue("last modified shall not be zero!",
  24. entry2.getLastModified() != 0);
  25. writeTrashFile(path, "new content");
  26. git.add().addFilepattern(path).call();
  27. git.commit().setMessage("commit2").call();
  28. dc = db.readDirCache();
  29. entry = dc.getEntry(path);
  30. entry2 = dc.getEntry(path);
  31. assertTrue("last modified shall not be zero!",
  32. entry.getLastModified() != 0);
  33. assertTrue("last modified shall not be zero!",
  34. entry2.getLastModified() != 0);
  35. }
  36. @Test
  37. public void testModify() throws Exception {
  38. Git git = new Git(db);
  39. String path = "file";
  40. writeTrashFile(path, "content");
  41. git.add().addFilepattern(path).call();
  42. git.commit().setMessage("commit").call();
  43. DirCache dc = db.readDirCache();
  44. DirCacheEntry entry = dc.getEntry(path);
  45. long masterLastMod = entry.getLastModified();
  46. git.checkout().setCreateBranch(true).setName("side").call();
  47. Thread.sleep(10);
  48. String path2 = "file2";
  49. writeTrashFile(path2, "side content");
  50. git.add().addFilepattern(path2).call();
  51. git.commit().setMessage("commit").call();
  52. dc = db.readDirCache();
  53. entry = dc.getEntry(path);
  54. long sideLastMode = entry.getLastModified();
  55. Thread.sleep(2000);
  56. writeTrashFile(path, "uncommitted content");
  57. git.checkout().setName("master").call();
  58. dc = db.readDirCache();
  59. entry = dc.getEntry(path);
  60. assertTrue("shall have equal mod time!", masterLastMod == sideLastMode);
  61. assertTrue("shall not equal master timestamp!",
  62. entry.getLastModified() == masterLastMod);
  63. }
  64. }