mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
git: do not load HEAD revision multiple times
This commit is contained in:
@@ -195,6 +195,8 @@ public class GitChangeProvider implements ChangeProvider {
|
||||
public void feedBuilder(final ChangelistBuilder builder) throws VcsException {
|
||||
final VcsKey gitKey = GitVcs.getKey();
|
||||
|
||||
Map<VirtualFile, GitRevisionNumber> baseRevisions = new HashMap<>();
|
||||
|
||||
for (Document document : myFileDocumentManager.getUnsavedDocuments()) {
|
||||
VirtualFile vf = myFileDocumentManager.getFile(document);
|
||||
if (vf == null || !vf.isValid()) continue;
|
||||
@@ -206,7 +208,13 @@ public class GitChangeProvider implements ChangeProvider {
|
||||
final VirtualFile root = myVcsManager.getVcsRootFor(vf);
|
||||
if (root == null) continue;
|
||||
|
||||
final GitRevisionNumber beforeRevisionNumber = GitChangeUtils.resolveReference(myProject, root, "HEAD");
|
||||
|
||||
GitRevisionNumber beforeRevisionNumber = baseRevisions.get(root);
|
||||
if (beforeRevisionNumber == null) {
|
||||
beforeRevisionNumber = GitChangeUtils.resolveReference(myProject, root, "HEAD");
|
||||
baseRevisions.put(root, beforeRevisionNumber);
|
||||
}
|
||||
|
||||
builder.processChange(new Change(GitContentRevision.createRevision(vf, beforeRevisionNumber, myProject),
|
||||
GitContentRevision.createRevision(vf, null, myProject), FileStatus.MODIFIED), gitKey);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user