use of com.intellij.openapi.vcs.AbstractVcs in project intellij-community by JetBrains.
the class UpdateOperation method fileIsUnderProject.
@Override
public boolean fileIsUnderProject(File file) {
final FilePath path = VcsContextFactory.SERVICE.getInstance().createFilePathOn(file);
if (!super.fileIsUnderProject(file)) {
return false;
}
final AbstractVcs vcs = ApplicationManager.getApplication().runReadAction(new Computable<AbstractVcs>() {
@Nullable
public AbstractVcs compute() {
return myVcsManager.getVcsFor(path);
}
});
return vcs == myVcs;
}
use of com.intellij.openapi.vcs.AbstractVcs in project intellij-community by JetBrains.
the class VcsCherryPickAction method getActiveCherryPickersForProject.
@NotNull
private static List<VcsCherryPicker> getActiveCherryPickersForProject(@Nullable final Project project) {
if (project != null) {
final ProjectLevelVcsManager projectLevelVcsManager = ProjectLevelVcsManager.getInstance(project);
AbstractVcs[] vcss = projectLevelVcsManager.getAllActiveVcss();
return ContainerUtil.mapNotNull(vcss, vcs -> vcs != null ? VcsCherryPickManager.getInstance(project).getCherryPickerFor(vcs.getKeyInstanceMethod()) : null);
}
return ContainerUtil.emptyList();
}
use of com.intellij.openapi.vcs.AbstractVcs in project intellij-community by JetBrains.
the class VcsContentAnnotationImpl method intervalRecentlyChanged.
@Override
public boolean intervalRecentlyChanged(VirtualFile file, TextRange lineInterval, VcsRevisionNumber currentRevisionNumber) {
final ProjectLevelVcsManager vcsManager = ProjectLevelVcsManager.getInstance(myProject);
final AbstractVcs vcs = vcsManager.getVcsFor(file);
if (vcs == null || vcs.getDiffProvider() == null)
return false;
if (currentRevisionNumber == null) {
currentRevisionNumber = vcs.getDiffProvider().getCurrentRevision(file);
assert currentRevisionNumber != null;
}
final ThreeState isRecent = myContentAnnotationCache.isRecent(file, vcs.getKeyInstanceMethod(), currentRevisionNumber, lineInterval, System.currentTimeMillis() - mySettings.getLimit());
if (!ThreeState.UNSURE.equals(isRecent))
return ThreeState.YES.equals(isRecent);
final FileAnnotation fileAnnotation;
try {
fileAnnotation = vcs.getAnnotationProvider().annotate(file);
} catch (VcsException e) {
LOG.info(e);
return false;
}
myContentAnnotationCache.register(file, vcs.getKeyInstanceMethod(), currentRevisionNumber, fileAnnotation);
for (int i = lineInterval.getStartOffset(); i <= lineInterval.getEndOffset(); i++) {
Date lineDate = fileAnnotation.getLineDate(i);
if (lineDate != null && isRecent(lineDate))
return true;
}
return false;
}
use of com.intellij.openapi.vcs.AbstractVcs in project intellij-community by JetBrains.
the class CompareWithSelectedRevisionAction method actionPerformed.
@Override
protected void actionPerformed(@NotNull VcsContext vcsContext) {
final VirtualFile file = vcsContext.getSelectedFiles()[0];
final Project project = vcsContext.getProject();
final AbstractVcs vcs = ProjectLevelVcsManager.getInstance(project).getVcsFor(file);
final VcsHistoryProvider vcsHistoryProvider = vcs.getVcsHistoryProvider();
new VcsHistoryProviderBackgroundableProxy(vcs, vcsHistoryProvider, vcs.getDiffProvider()).createSessionFor(vcs.getKeyInstanceMethod(), VcsUtil.getFilePath(file), new Consumer<VcsHistorySession>() {
@Override
public void consume(VcsHistorySession session) {
if (session == null)
return;
final List<VcsFileRevision> revisions = session.getRevisionList();
final HistoryAsTreeProvider treeHistoryProvider = session.getHistoryAsTreeProvider();
if (treeHistoryProvider != null) {
showTreePopup(treeHistoryProvider.createTreeOn(revisions), file, project, vcs.getDiffProvider());
} else {
showListPopup(revisions, project, new Consumer<VcsFileRevision>() {
@Override
public void consume(final VcsFileRevision revision) {
DiffActionExecutor.showDiff(vcs.getDiffProvider(), revision.getRevisionNumber(), file, project, VcsBackgroundableActions.COMPARE_WITH);
}
}, true);
}
}
}, VcsBackgroundableActions.COMPARE_WITH, false, null);
}
use of com.intellij.openapi.vcs.AbstractVcs in project intellij-community by JetBrains.
the class SelectAndCompareWithSelectedRevisionAction method actionPerformed.
@Override
protected void actionPerformed(@NotNull VcsContext vcsContext) {
final VirtualFile file = vcsContext.getSelectedFiles()[0];
final Project project = vcsContext.getProject();
final AbstractVcs vcs = ProjectLevelVcsManager.getInstance(project).getVcsFor(file);
if (vcs == null) {
return;
}
RevisionSelector selector = vcs.getRevisionSelector();
final DiffProvider diffProvider = vcs.getDiffProvider();
if (selector != null) {
final VcsRevisionNumber vcsRevisionNumber = selector.selectNumber(file);
if (vcsRevisionNumber != null) {
DiffActionExecutor.showDiff(diffProvider, vcsRevisionNumber, file, project, VcsBackgroundableActions.COMPARE_WITH);
}
}
}
Aggregations