本文整理汇总了Java中git4idea.repo.GitRepositoryManager.getRepositories方法的典型用法代码示例。如果您正苦于以下问题:Java GitRepositoryManager.getRepositories方法的具体用法?Java GitRepositoryManager.getRepositories怎么用?Java GitRepositoryManager.getRepositories使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类git4idea.repo.GitRepositoryManager
的用法示例。
在下文中一共展示了GitRepositoryManager.getRepositories方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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包/类
/**
* Returns the Git repository object for the project or null if this is not a Git repo project.
*
* @param project
* @return
*/
public static GitRepository getGitRepository(final Project project) {
if (isGitVcs(project)) {
final GitRepositoryManager manager = GitUtil.getRepositoryManager(project);
GitRepository repository = manager.getRepositoryForRoot(project.getBaseDir());
// in the case where the base dir of the Git repo and the base dir of IDEA project don't match this can be null
if (repository == null) {
final List<GitRepository> repos = manager.getRepositories();
if (repos.size() > 0) {
repository = repos.get(0);
if (repos.size() > 1) {
logger.warn("More than 1 Git repo was found. Defaulting to the first returned: " + repository.getRoot().getPath());
}
} else {
logger.warn("We are in a Git project that does not have any Git repos. (We may be asking too early.)");
}
}
return repository;
}
return null;
}
示例3: actionPerformedNoRepositories
import git4idea.repo.GitRepositoryManager; //导入方法依赖的package包/类
@Test
public void actionPerformedNoRepositories (
@Mocked final AnActionEvent event,
@Mocked final NotificationUtil notificationUtil,
@Mocked final Project project,
@Mocked final GitRepositoryManager manager
) throws Exception {
GitExtenderUpdateAll updater = new GitExtenderUpdateAll();
new Expectations() {{
event.getProject(); result = project;
manager.getRepositories(); result = Collections.emptyList();
}};
updater.actionPerformed(event);
new Verifications() {{
NotificationUtil.showErrorNotification("Update Failed", anyString);
}};
}
示例4: actionPerformedCanceledFromDialog
import git4idea.repo.GitRepositoryManager; //导入方法依赖的package包/类
@Test
public void actionPerformedCanceledFromDialog (
@Mocked final AnActionEvent event,
@Mocked final NotificationUtil notificationUtil,
@Mocked final Project project,
@Mocked final GitRepositoryManager manager,
@Mocked final GitRepository gitRepository,
@Mocked final ProjectSettingsHandler settingsHandler,
@Mocked final VcsImplUtil vcsImplUtil,
@Mocked final SelectModuleDialog dialog
) throws Exception {
GitExtenderUpdateAll updater = new GitExtenderUpdateAll();
new Expectations() {{
event.getProject(); result = project;
manager.getRepositories(); result = Arrays.asList(gitRepository, gitRepository);
VcsImplUtil.getShortVcsRootName(project, (VirtualFile) any); result = "test";
dialog.showAndGet(); result = false;
}};
updater.actionPerformed(event);
new Verifications() {{
NotificationUtil.showInfoNotification("Update Canceled", anyString);
}};
}
示例5: actionPerformedNothingSelectedFromDialog
import git4idea.repo.GitRepositoryManager; //导入方法依赖的package包/类
@Test
public void actionPerformedNothingSelectedFromDialog (
@Mocked final AnActionEvent event,
@Mocked final NotificationUtil notificationUtil,
@Mocked final Project project,
@Mocked final GitRepositoryManager manager,
@Mocked final GitRepository gitRepository,
@Mocked final ProjectSettingsHandler settingsHandler,
@Mocked final VcsImplUtil vcsImplUtil,
@Mocked final SelectModuleDialog dialog
) throws Exception {
GitExtenderUpdateAll updater = new GitExtenderUpdateAll();
new Expectations() {{
event.getProject(); result = project;
manager.getRepositories(); result = Arrays.asList(gitRepository, gitRepository);
VcsImplUtil.getShortVcsRootName(project, (VirtualFile) any); result = "test";
dialog.showAndGet(); result = true;
}};
updater.actionPerformed(event);
new Verifications() {{
NotificationUtil.showInfoNotification("Update Canceled", anyString);
}};
}
示例6: 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());
}
示例7: getLocalPath
import git4idea.repo.GitRepositoryManager; //导入方法依赖的package包/类
@Nullable
protected VirtualFile getLocalPath(@NotNull Repository repository) {
GitRepositoryManager manager = GitUtil.getRepositoryManager(myProject);
List<GitRepository> repositories = manager.getRepositories();
String location = repository.getUrl();
for (GitRepository repo : repositories) {
GitRemote origin = GitUtil.findRemoteByName(repo, GitRemote.ORIGIN);
if (origin != null) {
String originFirstUrl = origin.getFirstUrl();
if (originFirstUrl == null) continue;
if (location.equals(originFirstUrl)) {
return repo.getRoot();
}
}
}
return null;
}
示例8: 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;
}
示例9: GitBranchPopup
import git4idea.repo.GitRepositoryManager; //导入方法依赖的package包/类
private GitBranchPopup(@NotNull GitRepository currentRepository,
@NotNull GitRepositoryManager repositoryManager,
@NotNull GitVcsSettings vcsSettings,
@NotNull Condition<AnAction> preselectActionCondition) {
super(currentRepository, repositoryManager, new GitMultiRootBranchConfig(repositoryManager.getRepositories()), vcsSettings,
preselectActionCondition);
}
示例10: createBranchGroup
import git4idea.repo.GitRepositoryManager; //导入方法依赖的package包/类
@NotNull
private static AnAction createBranchGroup(@NotNull Project project,
@NotNull VcsRef ref,
@NotNull GitRepository repository,
@NotNull GitRepositoryManager repositoryManager,
@NotNull GitVcsSettings settings,
boolean showBranchesPopup) {
List<GitRepository> allRepositories = repositoryManager.getRepositories();
boolean isSyncBranch = settings.getSyncSetting() != DvcsSyncSettings.Value.DONT_SYNC &&
allRepositories.size() > 1 && branchInAllRepositories(allRepositories, ref);
boolean isLocal = ref.getType() == GitRefManager.LOCAL_BRANCH;
List<AnAction> actions = new ArrayList<AnAction>(3);
ActionGroup singleRepoActions = createBranchActions(project, Collections.singletonList(repository), ref, repository, isLocal);
singleRepoActions.setPopup(false);
actions.add(singleRepoActions);
if (isSyncBranch) {
actions.add(Separator.getInstance());
ActionGroup allReposActions = createBranchActions(project, allRepositories, ref, repository, isLocal);
allReposActions.getTemplatePresentation().setText("In All Repositories");
allReposActions.setPopup(true);
actions.add(allReposActions);
}
String text = showBranchesPopup ? ref.getName() : "Branch '" + ref.getName() + "'";
ActionGroup group = new DefaultActionGroup(text, actions);
group.setPopup(true);
return group;
}
示例11: refresh
import git4idea.repo.GitRepositoryManager; //导入方法依赖的package包/类
@Override
public void refresh(@NotNull Project project) {
GitRepositoryManager repositoryManager = ServiceManager.getService(project, GitRepositoryManager.class);
for (GitRepository repository : repositoryManager.getRepositories()) {
repository.getUntrackedFilesHolder().invalidate();
}
}
示例12: 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;
}
示例13: actionPerformed
import git4idea.repo.GitRepositoryManager; //导入方法依赖的package包/类
@Override
public void actionPerformed(@NotNull AnActionEvent event) {
try {
Project project = event.getProject();
if (project == null) {
logger.warn("received event without project");
NotificationUtil.showErrorNotification("Update Failed", "Git Extender failed to retrieve the project");
return;
}
GitRepositoryManager manager = getGitRepositoryManager(project);
if (manager == null) {
NotificationUtil.showErrorNotification("Update Failed", "Git Extender could not initialize the project's repository manager");
return;
}
List<GitRepository> repositoryList = manager.getRepositories();
manager.updateAllRepositories();
if (repositoryList.isEmpty()) {
logger.info("no git repositories in project");
NotificationUtil.showErrorNotification("Update Failed", "Git Extender could not find any repositories in the current project");
return;
}
ProjectSettingsHandler projectSettingsHandler = new ProjectSettingsHandler(project);
boolean proceedToUpdate = showSelectModuleDialog(projectSettingsHandler, repositoryList);
if(!proceedToUpdate) {
logger.debug("update cancelled");
NotificationUtil.showInfoNotification("Update Canceled", "update was canceled");
return;
}
List<GitRepository> reposToUpdate = getSelectedGitRepos(repositoryList,
projectSettingsHandler.loadSelectedModules());
if (reposToUpdate.isEmpty()) {
logger.debug("no modules selected in dialog");
NotificationUtil.showInfoNotification("Update Canceled", "update was canceled");
return;
}
updateRepositories(project, reposToUpdate);
} catch (Exception | Error e) {
logger.warn("error updating project due to exception", e);
NotificationUtil.showErrorNotification("Update Failed", "Git Extender failed to update the project due to exception: " + e);
}
}
示例14: actionPerformedSingleRepoNoDialog
import git4idea.repo.GitRepositoryManager; //导入方法依赖的package包/类
@Test
public void actionPerformedSingleRepoNoDialog (
final @Mocked GitRepositoryManager gitRepositoryManager,
final @Mocked GitRepository gitRepository,
final @Mocked VirtualFile root,
final @Mocked BackgroundableRepoUpdateTask task,
final @Mocked VcsImplUtil vcsImplUtil,
final @Mocked SelectModuleDialog selectModuleDialog,
final @Mocked ProjectSettingsHandler projectSettingsHandler,
final @Mocked GitExtenderSettingsHandler gitExtenderSettingsHandler
) throws Exception {
assertThat(base.getProject())
.as("null project returned from base")
.isNotNull();
final String repoName = base.getProject().getName();
final GitExtenderUpdateAll updater = new GitExtenderUpdateAll();
final AnActionEvent event = AnActionEvent.createFromAnAction(updater, null, "somewhere",
new TestDataProvider(base.getProject()));
final GitExtenderSettings settings = new GitExtenderSettings();
new Expectations() {{
gitRepositoryManager.getRepositories(); result = Collections.singletonList(gitRepository);
gitRepositoryManager.updateAllRepositories();
gitRepository.getProject(); result = base.getProject();
gitRepository.getRoot(); result = root;
VcsImplUtil.getShortVcsRootName(base.getProject(), root); result = repoName;
projectSettingsHandler.loadSelectedModules(); result = new ArrayList<>();
gitExtenderSettingsHandler.loadSettings(); result = settings;
new BackgroundableRepoUpdateTask(gitRepository, repoName, settings, (AtomicInteger)any, (AccessToken)any);
result = task;
}};
updater.actionPerformed(event);
new Verifications() {{
selectModuleDialog.showAndGet(); times = 0;
task.queue(); times = 1;
}};
}
示例15: actionPerformedMultipleReposAllSelected
import git4idea.repo.GitRepositoryManager; //导入方法依赖的package包/类
@Test
public void actionPerformedMultipleReposAllSelected (
final @Mocked GitRepositoryManager gitRepositoryManager,
final @Mocked GitRepository gitRepository1,
final @Mocked GitRepository gitRepository2,
final @Mocked GitRepository gitRepository3,
final @Mocked VirtualFile root1,
final @Mocked VirtualFile root2,
final @Mocked VirtualFile root3,
final @Mocked BackgroundableRepoUpdateTask task,
final @Mocked VcsImplUtil vcsImplUtil,
final @Mocked SelectModuleDialog selectModuleDialog,
final @Mocked ProjectSettingsHandler projectSettingsHandler,
final @Mocked GitExtenderSettingsHandler gitExtenderSettingsHandler
) throws Exception {
assertThat(base.getProject())
.as("null project returned from base")
.isNotNull();
final String baseRepoName = base.getProject().getName();
final String repoName1 = baseRepoName + "_1";
final String repoName2 = baseRepoName + "_2";
final String repoName3 = baseRepoName + "_3";
final GitExtenderUpdateAll updater = new GitExtenderUpdateAll();
final AnActionEvent event = AnActionEvent.createFromAnAction(updater, null, "somewhere",
new TestDataProvider(base.getProject()));
final GitExtenderSettings settings = new GitExtenderSettings();
new Expectations() {{
gitRepositoryManager.getRepositories();
result = Arrays.asList(gitRepository1, gitRepository2, gitRepository3);
gitRepositoryManager.updateAllRepositories();
gitRepository1.getProject(); result = base.getProject();
gitRepository2.getProject(); result = base.getProject();
gitRepository3.getProject(); result = base.getProject();
gitRepository1.getRoot(); result = root1;
gitRepository2.getRoot(); result = root2;
gitRepository3.getRoot(); result = root3;
VcsImplUtil.getShortVcsRootName(base.getProject(), root1); result = repoName1;
VcsImplUtil.getShortVcsRootName(base.getProject(), root2); result = repoName2;
VcsImplUtil.getShortVcsRootName(base.getProject(), root3); result = repoName3;
selectModuleDialog.showAndGet(); result = true;
projectSettingsHandler.loadSelectedModules();
result = new ArrayList<>(Arrays.asList(repoName1, repoName2, repoName3));
gitExtenderSettingsHandler.loadSettings(); result = settings;
new BackgroundableRepoUpdateTask(gitRepository1, repoName1, settings, (AtomicInteger)any, (AccessToken)any);
result = task;
new BackgroundableRepoUpdateTask(gitRepository2, repoName2, settings, (AtomicInteger)any, (AccessToken)any);
result = task;
new BackgroundableRepoUpdateTask(gitRepository3, repoName3, settings, (AtomicInteger)any, (AccessToken)any);
result = task;
}};
updater.actionPerformed(event);
new Verifications() {{
task.queue(); times = 3;
}};
}