Merge branch 'stable-6.5'

* stable-6.5:
  Ensure FileCommitGraph scans commit-graph file if it already exists

Change-Id: I5218ff5214222c7d6d96e452cf427eea1f20c316
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/ObjectDirectoryTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/ObjectDirectoryTest.java
index d74766d..746a0a1 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/ObjectDirectoryTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/storage/file/ObjectDirectoryTest.java
@@ -278,6 +278,7 @@ public void testGetCommitGraph() throws Exception {
 				ConfigConstants.CONFIG_COMMIT_GRAPH, true);
 		db.getConfig().setBoolean(ConfigConstants.CONFIG_GC_SECTION, null,
 				ConfigConstants.CONFIG_KEY_WRITE_COMMIT_GRAPH, true);
+		db.getConfig().save();
 
 		// no commit-graph
 		ObjectDirectory dir = db.getObjectDatabase();
@@ -294,6 +295,13 @@ public void testGetCommitGraph() throws Exception {
 		assertTrue(dir.getCommitGraph().isPresent());
 		assertEquals(1, dir.getCommitGraph().get().getCommitCnt());
 
+		// get commit-graph in a newly created db
+		try (FileRepository repo2 = new FileRepository(db.getDirectory())) {
+			ObjectDirectory dir2 = repo2.getObjectDatabase();
+			assertTrue(dir2.getCommitGraph().isPresent());
+			assertEquals(1, dir2.getCommitGraph().get().getCommitCnt());
+		}
+
 		// update commit-graph
 		commitFile("file2.txt", "content", "master");
 		gc.gc().get();
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileCommitGraph.java b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileCommitGraph.java
index 3e411a1..44429a7 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileCommitGraph.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/FileCommitGraph.java
@@ -85,10 +85,10 @@ private static final class GraphSnapshot {
 		private final CommitGraph graph;
 
 		GraphSnapshot(@NonNull File file) {
-			this(file, FileSnapshot.save(file), null);
+			this(file, null, null);
 		}
 
-		GraphSnapshot(@NonNull File file, @NonNull FileSnapshot snapshot,
+		GraphSnapshot(@NonNull File file, FileSnapshot snapshot,
 				CommitGraph graph) {
 			this.file = file;
 			this.snapshot = snapshot;
@@ -104,7 +104,7 @@ GraphSnapshot refresh() {
 				// commit-graph file didn't exist
 				return this;
 			}
-			if (!snapshot.isModified(file)) {
+			if (snapshot != null && !snapshot.isModified(file)) {
 				// commit-graph file was not modified
 				return this;
 			}