本文整理汇总了Java中git4idea.repo.GitRepositoryManager.getRepositoryForFile方法的典型用法代码示例。如果您正苦于以下问题:Java GitRepositoryManager.getRepositoryForFile方法的具体用法?Java GitRepositoryManager.getRepositoryForFile怎么用?Java GitRepositoryManager.getRepositoryForFile使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类git4idea.repo.GitRepositoryManager
的用法示例。
在下文中一共展示了GitRepositoryManager.getRepositoryForFile方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getGitRepository
import git4idea.repo.GitRepositoryManager; //导入方法依赖的package包/类
@Nullable
public static GitRepository getGitRepository(@NotNull Project project, @Nullable VirtualFile file) {
GitRepositoryManager manager = GitUtil.getRepositoryManager(project);
List<GitRepository> repositories = manager.getRepositories();
if (repositories.size() == 0) {
return null;
}
if (repositories.size() == 1) {
return repositories.get(0);
}
if (file != null) {
GitRepository repository = manager.getRepositoryForFile(file);
if (repository != null) {
return repository;
}
}
return manager.getRepositoryForFile(project.getBaseDir());
}
示例2: getGitRepository
import git4idea.repo.GitRepositoryManager; //导入方法依赖的package包/类
@Nullable
private static GitRepository getGitRepository(
@NotNull Project project, @Nullable VirtualFile file) {
GitRepositoryManager manager = GitUtil.getRepositoryManager(project);
List<GitRepository> repositories = manager.getRepositories();
if (repositories.size() == 0) {
return null;
}
if (repositories.size() == 1) {
return repositories.get(0);
}
if (file != null) {
GitRepository repository = manager.getRepositoryForFile(file);
if (repository != null) {
return repository;
}
}
return manager.getRepositoryForFile(project.getBaseDir());
}
示例3: isRebasing
import git4idea.repo.GitRepositoryManager; //导入方法依赖的package包/类
protected static boolean isRebasing(AnActionEvent e) {
final Project project = e.getData(PlatformDataKeys.PROJECT);
if (project != null) {
final VirtualFile[] files = e.getData(PlatformDataKeys.VIRTUAL_FILE_ARRAY);
if (files != null) {
for (VirtualFile file : files) {
GitRepositoryManager manager = GitUtil.getRepositoryManager(project);
if (manager == null) {
return false;
}
final GitRepository repositoryForFile = manager.getRepositoryForFile(file);
if (repositoryForFile != null && repositoryForFile.getState() == GitRepository.State.REBASING) {
return true;
}
}
}
}
return false;
}
示例4: update
import git4idea.repo.GitRepositoryManager; //导入方法依赖的package包/类
@Override
public void update(final AnActionEvent e) {
Project project = e.getData(CommonDataKeys.PROJECT);
VirtualFile virtualFile = e.getData(CommonDataKeys.VIRTUAL_FILE);
if (project == null || project.isDefault() || virtualFile == null) {
setVisibleEnabled(e, false, false);
return;
}
GitRepositoryManager manager = GitUtil.getRepositoryManager(project);
final GitRepository gitRepository = manager.getRepositoryForFile(virtualFile);
if (gitRepository == null) {
setVisibleEnabled(e, false, false);
return;
}
if (!GithubUtil.isRepositoryOnGitHub(gitRepository)) {
setVisibleEnabled(e, false, false);
return;
}
ChangeListManager changeListManager = ChangeListManager.getInstance(project);
if (changeListManager.isUnversioned(virtualFile)) {
setVisibleEnabled(e, true, false);
return;
}
Change change = changeListManager.getChange(virtualFile);
if (change != null && change.getType() == Change.Type.NEW) {
setVisibleEnabled(e, true, false);
return;
}
setVisibleEnabled(e, true, true);
}
示例5: getGithubUrl
import git4idea.repo.GitRepositoryManager; //导入方法依赖的package包/类
@Nullable
private static String getGithubUrl(@NotNull Project project, @NotNull VirtualFile virtualFile, @Nullable Editor editor) {
GitRepositoryManager manager = GitUtil.getRepositoryManager(project);
final GitRepository repository = manager.getRepositoryForFile(virtualFile);
if (repository == null) {
StringBuilder details = new StringBuilder("file: " + virtualFile.getPresentableUrl() + "; Git repositories: ");
for (GitRepository repo : manager.getRepositories()) {
details.append(repo.getPresentableUrl()).append("; ");
}
GithubNotifications.showError(project, CANNOT_OPEN_IN_BROWSER, "Can't find git repository", details.toString());
return null;
}
final String githubRemoteUrl = GithubUtil.findGithubRemoteUrl(repository);
if (githubRemoteUrl == null) {
GithubNotifications.showError(project, CANNOT_OPEN_IN_BROWSER, "Can't find github remote");
return null;
}
final String rootPath = repository.getRoot().getPath();
final String path = virtualFile.getPath();
if (!path.startsWith(rootPath)) {
GithubNotifications
.showError(project, CANNOT_OPEN_IN_BROWSER, "File is not under repository root", "Root: " + rootPath + ", file: " + path);
return null;
}
String relativePath = path.substring(rootPath.length());
String hash = getCurrentFileRevisionHash(project, virtualFile);
if (hash != null) {
return makeUrlToOpen(editor, relativePath, hash, githubRemoteUrl);
}
GithubNotifications.showError(project, CANNOT_OPEN_IN_BROWSER, "Can't get last revision.");
return null;
}
示例6: update
import git4idea.repo.GitRepositoryManager; //导入方法依赖的package包/类
@Override
public void update(@NotNull AnActionEvent e) {
super.update(e);
Presentation presentation = e.getPresentation();
Project project = e.getProject();
if (project == null) {
presentation.setEnabled(false);
presentation.setVisible(false);
return;
}
VirtualFile[] vFiles = e.getData(CommonDataKeys.VIRTUAL_FILE_ARRAY);
if (vFiles == null || vFiles.length != 1 || vFiles[0] == null) { // only 1 file for now
presentation.setEnabled(false);
presentation.setVisible(true);
return;
}
GitRepositoryManager manager = GitUtil.getRepositoryManager(project);
GitRepository repository = manager.getRepositoryForFile(vFiles[0]);
if (repository == null || repository.isFresh() || noBranchesToCompare(repository)) {
presentation.setEnabled(false);
presentation.setVisible(true);
return;
}
presentation.setEnabled(true);
presentation.setVisible(true);
}
示例7: getRepositoryForProject
import git4idea.repo.GitRepositoryManager; //导入方法依赖的package包/类
private GitRepository getRepositoryForProject(final Project project) {
//find if the project belongs to a local git repository
final GitRepositoryManager repositoryManager = GitUtil.getRepositoryManager(project);
final List<GitRepository> localRepositories = repositoryManager.getRepositories();
final GitRepository repo;
if (localRepositories.size() == 1) {
//found one repository for the project
repo = localRepositories.get(0);
} else {
// either none or multiple repositories were found
// try to find repository for project root
repo = repositoryManager.getRepositoryForFile(project.getBaseDir());
}
return repo;
}
示例8: doActionPerformed
import git4idea.repo.GitRepositoryManager; //导入方法依赖的package包/类
@Override
public void doActionPerformed(final AnActionEvent anActionEvent) {
final Project project = anActionEvent.getRequiredData(CommonDataKeys.PROJECT);
final VirtualFile virtualFile = anActionEvent.getRequiredData(CommonDataKeys.VIRTUAL_FILE);
final GitRepositoryManager manager = GitUtil.getRepositoryManager(project);
final GitRepository gitRepository = manager.getRepositoryForFile(virtualFile);
final GitRemote gitRemote = TfGitHelper.getTfGitRemote(gitRepository);
// guard for null so findbugs doesn't complain
if (gitRemote == null || gitRepository == null || gitRepository.getRoot() == null) {
return;
}
final String rootPath = gitRepository.getRoot().getPath();
final String path = virtualFile.getPath();
final String relativePath = path.substring(rootPath.length());
String gitRemoteBranchName = StringUtils.EMPTY;
final GitLocalBranch gitLocalBranch = gitRepository.getCurrentBranch();
if (gitLocalBranch != null) {
final GitRemoteBranch gitRemoteBranch = gitLocalBranch.findTrackedBranch(gitRepository);
if (gitRemoteBranch != null) {
gitRemoteBranchName = gitRemoteBranch.getNameForRemoteOperations();
}
}
final URI urlToBrowseTo = UrlHelper.getFileURI(gitRemote.getFirstUrl(), encodeVirtualFilePath(relativePath), gitRemoteBranchName);
logger.info("Browsing to url " + urlToBrowseTo.getPath());
BrowserUtil.browse(urlToBrowseTo);
}
示例9: update
import git4idea.repo.GitRepositoryManager; //导入方法依赖的package包/类
@Override
public void update(final AnActionEvent e) {
Project project = e.getData(PlatformDataKeys.PROJECT);
VirtualFile virtualFile = e.getData(PlatformDataKeys.VIRTUAL_FILE);
if (project == null || project.isDefault() || virtualFile == null) {
setVisibleEnabled(e, false, false);
return;
}
GitRepositoryManager manager = GitUtil.getRepositoryManager(project);
final GitRepository gitRepository = manager.getRepositoryForFile(virtualFile);
if (gitRepository == null) {
setVisibleEnabled(e, false, false);
return;
}
if (!GithubUtil.isRepositoryOnGitHub(gitRepository)) {
setVisibleEnabled(e, false, false);
return;
}
ChangeListManager changeListManager = ChangeListManager.getInstance(project);
if (changeListManager.isUnversioned(virtualFile)) {
setVisibleEnabled(e, true, false);
return;
}
Change change = changeListManager.getChange(virtualFile);
if (change != null && change.getType() == Change.Type.NEW) {
setVisibleEnabled(e, true, false);
return;
}
setVisibleEnabled(e, true, true);
}
示例10: update
import git4idea.repo.GitRepositoryManager; //导入方法依赖的package包/类
@Override
public void update(AnActionEvent e) {
super.update(e);
Presentation presentation = e.getPresentation();
Project project = e.getProject();
if (project == null) {
presentation.setEnabled(false);
presentation.setVisible(false);
return;
}
VirtualFile[] vFiles = e.getData(PlatformDataKeys.VIRTUAL_FILE_ARRAY);
if (vFiles == null || vFiles.length != 1 || vFiles[0] == null) { // only 1 file for now
presentation.setEnabled(false);
presentation.setVisible(true);
return;
}
GitRepositoryManager manager = GitUtil.getRepositoryManager(project);
GitRepository repository = manager.getRepositoryForFile(vFiles[0]);
if (repository == null || repository.isFresh() || noBranchesToCompare(repository)) {
presentation.setEnabled(false);
presentation.setVisible(true);
return;
}
presentation.setEnabled(true);
presentation.setVisible(true);
}
示例11: canShowHistoryFor
import git4idea.repo.GitRepositoryManager; //导入方法依赖的package包/类
@Override
public boolean canShowHistoryFor(@NotNull VirtualFile file) {
GitRepositoryManager manager = GitUtil.getRepositoryManager(myProject);
GitRepository repository = manager.getRepositoryForFile(file);
return repository != null && !repository.isFresh();
}
示例12: actionPerformed
import git4idea.repo.GitRepositoryManager; //导入方法依赖的package包/类
@Override
public void actionPerformed(final AnActionEvent e) {
final Project project = e.getData(PlatformDataKeys.PROJECT);
final VirtualFile virtualFile = e.getData(PlatformDataKeys.VIRTUAL_FILE);
if (virtualFile == null || project == null || project.isDisposed()) {
return;
}
GitRepositoryManager manager = GitUtil.getRepositoryManager(project);
final GitRepository repository = manager.getRepositoryForFile(virtualFile);
if (repository == null) {
StringBuilder details = new StringBuilder("file: " + virtualFile.getPresentableUrl() + "; Git repositories: ");
for (GitRepository repo : manager.getRepositories()) {
details.append(repo.getPresentableUrl()).append("; ");
}
GithubNotifications.showError(project, CANNOT_OPEN_IN_BROWSER, "Can't find git repository", details.toString());
return;
}
final String githubRemoteUrl = GithubUtil.findGithubRemoteUrl(repository);
if (githubRemoteUrl == null) {
GithubNotifications.showError(project, CANNOT_OPEN_IN_BROWSER, "Can't find github remote");
return;
}
final String rootPath = repository.getRoot().getPath();
final String path = virtualFile.getPath();
if (!path.startsWith(rootPath)) {
GithubNotifications
.showError(project, CANNOT_OPEN_IN_BROWSER, "File is not under repository root", "Root: " + rootPath + ", file: " + path);
return;
}
String branch = getBranchNameOnRemote(project, repository);
if (branch == null) {
return;
}
String relativePath = path.substring(rootPath.length());
String urlToOpen = makeUrlToOpen(e, relativePath, branch, githubRemoteUrl);
if (urlToOpen == null) {
GithubNotifications.showError(project, CANNOT_OPEN_IN_BROWSER, "Can't create properly url", githubRemoteUrl);
return;
}
BrowserUtil.launchBrowser(urlToOpen);
}
示例13: actionPerformed
import git4idea.repo.GitRepositoryManager; //导入方法依赖的package包/类
@Override
public void actionPerformed(final AnActionEvent e) {
final Project project = e.getData(PlatformDataKeys.PROJECT);
final VirtualFile virtualFile = e.getData(PlatformDataKeys.VIRTUAL_FILE);
final Editor editor = e.getData(PlatformDataKeys.EDITOR);
if (virtualFile == null || project == null || project.isDisposed()) {
return;
}
GitRepositoryManager manager = GitUtil.getRepositoryManager(project);
final GitRepository repository = manager.getRepositoryForFile(virtualFile);
if (repository == null) {
StringBuilder details = new StringBuilder("file: " + virtualFile.getPresentableUrl() + "; Git repositories: ");
for (GitRepository repo : manager.getRepositories()) {
details.append(repo.getPresentableUrl()).append("; ");
}
showError(project, CANNOT_OPEN_IN_BROWSER, "Can't find git repository", details.toString());
return;
}
final String rootPath = repository.getRoot().getPath();
final String path = virtualFile.getPath();
List<AnAction> remoteSelectedActions = new ArrayList<AnAction>();
for (GitRemote remote : repository.getRemotes()) {
remoteSelectedActions.add(new RemoteSelectedAction(project, repository, editor, remote, rootPath, path));
}
if (remoteSelectedActions.size() > 1) {
DefaultActionGroup remotesActionGroup = new DefaultActionGroup();
remotesActionGroup.addAll(remoteSelectedActions);
DataContext dataContext = e.getDataContext();
final ListPopup popup = JBPopupFactory.getInstance().createActionGroupPopup(
"Select remote",
remotesActionGroup,
dataContext,
JBPopupFactory.ActionSelectionAid.SPEEDSEARCH,
true);
popup.showInBestPositionFor(dataContext);
} else if (remoteSelectedActions.size() == 1) {
remoteSelectedActions.get(0).actionPerformed(null);
} else {
showError(project, CANNOT_OPEN_IN_BROWSER, "Can't find gitlab remote");
}
}