Skip to content

Commit 5794e3b

Browse files
Vladimir Kotalahornace
authored andcommitted
add repository directory to renamed file paths
1 parent a6e51e6 commit 5794e3b

File tree

5 files changed

+11
-10
lines changed

5 files changed

+11
-10
lines changed

opengrok-indexer/src/main/java/org/opengrok/indexer/history/FileHistoryCache.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -529,8 +529,7 @@ public void storeRenamed(Set<String> renamedFiles, Repository repository, String
529529
return;
530530
}
531531

532-
renamedFiles = renamedFiles.stream().map(e -> repository.getDirectoryNameRelative() + File.separator + e).
533-
filter(f -> new File(env.getSourceRootPath() + f).exists()).
532+
renamedFiles = renamedFiles.stream().filter(f -> new File(env.getSourceRootPath() + f).exists()).
534533
collect(Collectors.toSet());
535534
LOGGER.log(Level.FINE, "Storing history for {0} renamed files in repository ''{1}''",
536535
new Object[]{renamedFiles.size(), repository.getDirectoryName()});

opengrok-indexer/src/main/java/org/opengrok/indexer/history/GitRepository.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -623,7 +623,8 @@ private void getFiles(org.eclipse.jgit.lib.Repository repository,
623623
}
624624

625625
if (diff.getChangeType() == DiffEntry.ChangeType.RENAME && isHandleRenamedFiles()) {
626-
renamedFiles.add(getNativePath(diff.getNewPath()));
626+
renamedFiles.add(getNativePath(getDirectoryNameRelative()) + File.separator +
627+
getNativePath(diff.getNewPath()));
627628
}
628629
}
629630
}

opengrok-indexer/src/main/java/org/opengrok/indexer/history/MercurialHistoryParser.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ public void processStream(InputStream input) throws IOException {
170170
}
171171
}
172172
}
173-
} else if (s.startsWith(MercurialRepository.FILE_COPIES) &&
173+
} else if (repository.isHandleRenamedFiles() && s.startsWith(MercurialRepository.FILE_COPIES) &&
174174
entry != null && isDir) {
175175
/*
176176
* 'file_copies:' should be present only for directories but
@@ -185,8 +185,8 @@ public void processStream(InputStream input) throws IOException {
185185
String[] move = part.split(" \\(");
186186
File f = new File(mydir + move[0]);
187187
if (!move[0].isEmpty() && f.exists() &&
188-
!renamedFiles.contains(move[0])) {
189-
renamedFiles.add(move[0]);
188+
!renamedFiles.contains(repository.getDirectoryNameRelative() + File.separator + move[0])) {
189+
renamedFiles.add(repository.getDirectoryNameRelative() + File.separator + move[0]);
190190
}
191191
}
192192
} else if (s.startsWith(DESC_PREFIX) && entry != null) {

opengrok-indexer/src/main/java/org/opengrok/indexer/history/SubversionHistoryParser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ public void endElement(String uri, String localName, String qname) throws SAXExc
133133
// so intern them to reduce the memory footprint.
134134
entry.addFile(path.intern());
135135
if (isRenamed) {
136-
renamedFiles.add(file.getAbsolutePath().substring(home.length() + 1));
136+
renamedFiles.add(path.intern());
137137
}
138138
} else {
139139
LOGGER.log(Level.FINER, "Skipping file outside repository: " + s);

opengrok-indexer/src/test/java/org/opengrok/indexer/history/GitRepositoryTest.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -558,9 +558,10 @@ public void testHistory(boolean renamedHandling) throws Exception {
558558
File.separator + Paths.get("git", "header.h"),
559559
File.separator + Paths.get("git", "main.c"))));
560560

561-
List<String> expectedRenamedFiles = List.of(Paths.get("moved", "renamed2.c").toString(),
562-
Paths.get("moved2", "renamed2.c").toString(),
563-
Paths.get("moved", "renamed.c").toString());
561+
List<String> expectedRenamedFiles = List.of(
562+
File.separator + Paths.get("git", "moved", "renamed2.c"),
563+
File.separator + Paths.get("git", "moved2", "renamed2.c"),
564+
File.separator + Paths.get("git", "moved", "renamed.c"));
564565

565566
History history = gitrepo.getHistory(root);
566567
assertNotNull(history);

0 commit comments

Comments
 (0)