Skip to content

Commit b07cf50

Browse files
committed
refactor: Hide the fact that Repository uses Lazy for Git
1 parent 0206011 commit b07cf50

6 files changed

Lines changed: 16 additions & 9 deletions

File tree

src/main/java/org/variantsync/diffdetective/AnalysisRunner.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,14 +132,14 @@ public static void run(Options options, BiConsumer<Repository, Path> validation)
132132
if (options.preloadReposBeforeAnalysis()) {
133133
Logger.info("Preloading repositories:");
134134
for (final Repository repo : repos) {
135-
repo.getGitRepo().run();
135+
repo.preload();
136136
}
137137

138138
if (options.pullRepositoriesBeforeAnalysis()) {
139139
Logger.info("Updating repositories:");
140140
for (final Repository repo : repos) {
141141
try {
142-
Assert.assertTrue(repo.getGitRepo().run().pull().call().isSuccessful());
142+
Assert.assertTrue(repo.getGitRepo().pull().call().isSuccessful());
143143
} catch (GitAPIException e) {
144144
Logger.error(e, "Failed to pull repository '{}'", repo.getRepositoryName());
145145
}

src/main/java/org/variantsync/diffdetective/datasets/DatasetFactory.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,15 +104,15 @@ public List<Repository> createAll(final Collection<DatasetDescription> datasets,
104104
if (preload) {
105105
Logger.info("Preloading repositories:");
106106
for (final Repository repo : repos) {
107-
repo.getGitRepo().run();
107+
repo.preload();
108108
}
109109
}
110110

111111
if (pull) {
112112
Logger.info("Pulling repositories:");
113113
for (final Repository repo : repos) {
114114
try {
115-
Assert.assertTrue(repo.getGitRepo().run().pull().call().isSuccessful());
115+
Assert.assertTrue(repo.getGitRepo().pull().call().isSuccessful());
116116
} catch (GitAPIException e) {
117117
Logger.error(e, "Failed to pull repository '{}'", repo.getRepositoryName());
118118
}

src/main/java/org/variantsync/diffdetective/datasets/Repository.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,8 +223,15 @@ public PatchDiffParseOptions getParseOptions() {
223223
/**
224224
* Returns the internal jgit representation of this repository that allows to inspect the repositories history and content.
225225
*/
226-
public Lazy<Git> getGitRepo() {
227-
return git;
226+
public Git getGitRepo() {
227+
return git.run();
228+
}
229+
230+
/**
231+
* Prepares the Git repository (e.g., clones it if necessary).
232+
*/
233+
public void preload() {
234+
getGitRepo();
228235
}
229236

230237
/**

src/main/java/org/variantsync/diffdetective/diff/git/GitDiffer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public class GitDiffer {
6565
* @param repository The repository for whose history to obtain diffs.
6666
*/
6767
public GitDiffer(final Repository repository) {
68-
this.git = repository.getGitRepo().run();
68+
this.git = repository.getGitRepo();
6969
this.diffFilter = repository.getDiffFilter();
7070
this.parseOptions = repository.getParseOptions();
7171
}

src/main/java/org/variantsync/diffdetective/experiments/thesis_bm/ConstructionValidation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,7 @@ private VariationDiff<DiffLinesLabel> parseVariationTree(Analysis analysis, RevC
384384
*/
385385
new CharacterFilterReader(
386386
GitDiffer.getBeforeFullFile(
387-
analysis.getRepository().getGitRepo().run(),
387+
analysis.getRepository().getGitRepo(),
388388
commit,
389389
analysis.getCurrentPatch().getFileName(AFTER)),
390390
0xfeff)) // BOM, same as GitDiffer.BOM_PATTERN

src/main/java/org/variantsync/diffdetective/variation/diff/parse/VariationDiffParser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,7 @@ private void addNode(DiffNode<DiffLinesLabel> newNode) throws DiffParseException
432432
* @throws IOException when an error occurred.
433433
*/
434434
public static CommitDiff parseCommit(Repository repo, String commitHash) throws IOException {
435-
final Git git = repo.getGitRepo().run();
435+
final Git git = repo.getGitRepo();
436436
Assert.assertNotNull(git);
437437
final RevWalk revWalk = new RevWalk(git.getRepository());
438438
final RevCommit childCommit = revWalk.parseCommit(ObjectId.fromString(commitHash));

0 commit comments

Comments
 (0)