]> source.dussan.org Git - jgit.git/commitdiff
CommitGraphWriter: Use ProgressMonitor from the OutputStream 43/205343/1
authorIvan Frade <ifrade@google.com>
Tue, 7 Nov 2023 22:00:05 +0000 (14:00 -0800)
committerIvan Frade <ifrade@google.com>
Tue, 7 Nov 2023 22:00:05 +0000 (14:00 -0800)
The same progress monitor is passed around as parameter and inside the
output stream. The functions use one to start tasks and another to
report progress, which is confusing. The stream needs the monitor to
check cancellations so we cannot remove it from there.

Make all code take the monitor from the stream.

Change-Id: Id3cb9c1cb0bd47318b46ef934a9d4037341e25a7

org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/commitgraph/CommitGraphWriter.java

index 1c5f5b85219b72be39b5372cdd196a8aa2d4e006..e3ec4a5d6d9e07e5b8622460110ce2a7f8a0ee60 100644 (file)
@@ -134,7 +134,7 @@ public class CommitGraphWriter {
                                monitor, commitGraphStream)) {
                        writeHeader(out, chunks.size());
                        writeChunkLookup(out, chunks);
-                       writeChunks(monitor, out, chunks);
+                       writeChunks(out, chunks);
                        writeCheckSum(out);
                        if (expectedSize != out.length()) {
                                throw new IllegalStateException(String.format(
@@ -209,9 +209,8 @@ public class CommitGraphWriter {
                out.write(buffer);
        }
 
-       private void writeChunks(ProgressMonitor monitor,
-                       CancellableDigestOutputStream out, List<ChunkHeader> chunks)
-                       throws IOException {
+       private void writeChunks(CancellableDigestOutputStream out,
+                       List<ChunkHeader> chunks) throws IOException {
                for (ChunkHeader chunk : chunks) {
                        int chunkId = chunk.id;
 
@@ -223,7 +222,7 @@ public class CommitGraphWriter {
                                writeOidLookUp(out);
                                break;
                        case CHUNK_ID_COMMIT_DATA:
-                               writeCommitData(monitor, out);
+                               writeCommitData(out);
                                break;
                        case CHUNK_ID_EXTRA_EDGE_LIST:
                                writeExtraEdges(out);
@@ -277,8 +276,9 @@ public class CommitGraphWriter {
                }
        }
 
-       private void writeCommitData(ProgressMonitor monitor,
-                       CancellableDigestOutputStream out) throws IOException {
+       private void writeCommitData(CancellableDigestOutputStream out)
+                       throws IOException {
+               ProgressMonitor monitor = out.getWriteMonitor();
                int[] generations = computeGenerationNumbers(monitor);
                monitor.beginTask(JGitText.get().writingOutCommitGraph,
                                graphCommits.size());
@@ -319,7 +319,7 @@ public class CommitGraphWriter {
                        NB.encodeInt32(tmp, hashsz + 12, packedDate[1]);
 
                        out.write(tmp);
-                       out.getWriteMonitor().update(1);
+                       monitor.update(1);
                        i++;
                }
                monitor.endTask();