Example usage for org.eclipse.jgit.lib Repository getDirectory

List of usage examples for org.eclipse.jgit.lib Repository getDirectory

Introduction

In this page you can find the example usage for org.eclipse.jgit.lib Repository getDirectory.

Prototype


public File getDirectory() 

Source Link

Document

Get local metadata directory

Usage

From source file:org.eclipse.egit.ui.test.team.actions.FetchAndMergeActionTest.java

License:Open Source License

private SWTBotShell openMergeDialog() throws Exception {
    SWTBotTree projectExplorerTree = bot.viewById("org.eclipse.jdt.ui.PackageExplorer").bot().tree();
    getProjectItem(projectExplorerTree, PROJ1).select();
    String menuString = util.getPluginLocalizedValue("MergeAction_label");
    ContextMenuHelper.clickContextMenu(projectExplorerTree, "Team", menuString);
    Repository repo = lookupRepository(childRepositoryFile);
    SWTBotShell dialog = bot/* w  w w  .j  a  va2 s .c o m*/
            .shell(NLS.bind(UIText.MergeTargetSelectionDialog_TitleMerge, repo.getDirectory().toString()));
    return dialog;
}

From source file:org.eclipse.egit.ui.test.team.actions.ShowBlameActionHandlerTest.java

License:Open Source License

private IJavaProject createJavaProjectAndCommitToRepository() throws Exception {
    Repository myRepository = createLocalTestRepository(REPO1);
    File gitDir = myRepository.getDirectory();
    IJavaProject jProject = createJavaProject(myRepository, JAVA_PROJECT_NAME);
    IProject project = jProject.getProject();
    try {/*from w ww  . j av  a  2s .c om*/
        new ConnectProviderOperation(project, gitDir).execute(null);
    } catch (Exception e) {
        Activator.logError("Failed to connect project to repository", e);
    }
    assertConnected(project);
    // Check in at least the java file
    IFolder folder = project.getFolder(SRC_FOLDER_NAME).getFolder(PACKAGE_NAME);
    IFile file = folder.getFile(JAVA_FILE_NAME);

    IFile[] commitables = new IFile[] { file };
    ArrayList<IFile> untracked = new ArrayList<IFile>();
    untracked.addAll(Arrays.asList(commitables));
    // commit to master
    CommitOperation op = new CommitOperation(commitables, untracked, TestUtil.TESTAUTHOR,
            TestUtil.TESTCOMMITTER, "Initial commit");
    op.execute(null);

    // Make sure cache entry is already listening for changes
    IndexDiffCache cache = Activator.getDefault().getIndexDiffCache();
    cache.getIndexDiffCacheEntry(lookupRepository(gitDir));
    return jProject;
}

From source file:org.eclipse.egit.ui.view.repositories.GitRepositoriesViewRepoDeletionTest.java

License:Open Source License

@Test
public void testDeleteSubmoduleRepository() throws Exception {
    deleteAllProjects();// ww w.j  a  v a  2 s.c  o  m
    assertProjectExistence(PROJ1, false);
    clearView();
    Activator.getDefault().getRepositoryUtil().addConfiguredRepository(repositoryFile);
    shareProjects(repositoryFile);
    assertProjectExistence(PROJ1, true);
    refreshAndWait();
    assertHasRepo(repositoryFile);

    Repository db = lookupRepository(repositoryFile);
    SubmoduleAddCommand command = new SubmoduleAddCommand(db);
    String path = "sub";
    command.setPath(path);
    String uri = db.getDirectory().toURI().toString();
    command.setURI(uri);
    Repository subRepo = command.call();
    assertNotNull(subRepo);

    refreshAndWait();

    SWTBotTree tree = getOrOpenView().bot().tree();
    tree.getAllItems()[0].expand().expandNode(UIText.RepositoriesViewLabelProvider_SubmodulesNodeText)
            .getItems()[0].select();
    ContextMenuHelper.clickContextMenu(tree,
            myUtil.getPluginLocalizedValue(DELETE_REPOSITORY_CONTEXT_MENU_LABEL));
    SWTBotShell shell = bot.shell(UIText.DeleteRepositoryConfirmDialog_DeleteRepositoryWindowTitle);
    shell.activate();
    String workDir = subRepo.getWorkTree().getPath();
    String checkboxLabel = NLS.bind(UIText.DeleteRepositoryConfirmDialog_DeleteWorkingDirectoryCheckbox,
            workDir);
    shell.bot().checkBox(checkboxLabel).select();
    shell.bot().button(IDialogConstants.OK_LABEL).click();
    TestUtil.joinJobs(JobFamilies.REPOSITORY_DELETE);

    refreshAndWait();
    assertFalse(subRepo.getDirectory().exists());
    assertFalse(subRepo.getWorkTree().exists());
}

From source file:org.eclipse.egit.ui.view.repositories.GitRepositoriesViewTestBase.java

License:Open Source License

protected static File createRemoteRepository(File repositoryDir) throws Exception {
    Repository myRepository = org.eclipse.egit.core.Activator.getDefault().getRepositoryCache()
            .lookupRepository(repositoryDir);
    File gitDir = new File(getTestDirectory(), REPO2);
    Repository myRemoteRepository = lookupRepository(gitDir);
    myRemoteRepository.create();/* w  w w.  ja va 2 s. c om*/

    createStableBranch(myRepository);

    // now we configure the push destination
    myRepository.getConfig().setString("remote", "push", "pushurl",
            "file:///" + myRemoteRepository.getDirectory().getPath());
    myRepository.getConfig().setString("remote", "push", "push", "+refs/heads/*:refs/heads/*");
    // TODO Bug: for some reason, this seems to be required
    myRepository.getConfig().setString(ConfigConstants.CONFIG_CORE_SECTION, null,
            ConfigConstants.CONFIG_KEY_REPO_FORMAT_VERSION, "0");

    myRepository.getConfig().save();
    // and push
    PushConfiguredRemoteAction pa = new PushConfiguredRemoteAction(myRepository, "push");

    pa.run(null, false);
    TestUtil.joinJobs(JobFamilies.PUSH);
    try {
        // delete the stable branch again
        RefUpdate op = myRepository.updateRef("refs/heads/stable");
        op.setRefLogMessage("branch deleted", //$NON-NLS-1$
                false);
        // we set the force update in order
        // to avoid having this rejected
        // due to minor issues
        op.setForceUpdate(true);
        op.delete();
    } catch (IOException ioe) {
        throw new InvocationTargetException(ioe);
    }
    return myRemoteRepository.getDirectory();
}

From source file:org.eclipse.emf.compare.egit.ui.internal.merge.ModelGitMergeEditorInput.java

License:Open Source License

private RevCommit getRightCommit(RevWalk revWalk, Repository repository) throws InvocationTargetException {
    try {/*from www  .ja v a 2 s.  c om*/
        String target;
        if (repository.getRepositoryState().equals(RepositoryState.MERGING)) {
            target = Constants.MERGE_HEAD;
        } else if (repository.getRepositoryState().equals(RepositoryState.CHERRY_PICKING)) {
            target = Constants.CHERRY_PICK_HEAD;
        } else if (repository.getRepositoryState().equals(RepositoryState.REBASING_INTERACTIVE)) {
            target = readFile(repository.getDirectory(),
                    RebaseCommand.REBASE_MERGE + File.separatorChar + RebaseCommand.STOPPED_SHA);
        } else {
            target = Constants.ORIG_HEAD;
        }
        ObjectId mergeHead = repository.resolve(target);
        if (mergeHead == null) {
            throw new IOException(NLS.bind(UIText.ValidationUtils_CanNotResolveRefMessage, target));
        }
        return revWalk.parseCommit(mergeHead);
    } catch (IOException e) {
        throw new InvocationTargetException(e);
    }
}

From source file:org.eclipse.emf.compare.git.pgm.internal.cmd.AbstractLogicalCommandTest.java

License:Open Source License

@Test
public void useOfGitDir() throws Exception {
    // Sets context to be sure were are not in a git repository
    setCmdLocation(getTestTmpFolder().toString());

    Path oomphFolderPath = getTestTmpFolder().resolve("oomphFolder");
    File newSetupFile = new OomphUserModelBuilder() //
            .setInstallationTaskLocation(oomphFolderPath.toString()) //
            .setWorkspaceLocation(oomphFolderPath.resolve("ws").toString()) //
            .saveTo(getTestTmpFolder().resolve("setup.setup").toString());

    // Creates some content for the first commit.
    new ProjectBuilder(this) //
            .create(getRepositoryPath().resolve("EmptyProject"));

    addAllAndCommit("First commit");

    // Provides the repository using the --git-dir parameter
    // Use the --help option to avoid crashing the application and being able to test its parameters
    String gitDirPath = getRepositoryPath().resolve(".git").toString();
    getContext().addArg(getCommandName(), "--git-dir", gitDirPath, newSetupFile.getAbsolutePath(), "--help");

    Object result = getApp().start(getContext());
    Repository repo = getLogicalCommand().getRepository();
    assertNotNull(repo);/*from  w  w w  . jav a2 s.  c o m*/
    assertEquals(gitDirPath, repo.getDirectory().getAbsolutePath());
    assertEquals(Returns.COMPLETE.code(), result);
}

From source file:org.eclipse.emf.compare.tests.performance.git.GitUtil.java

License:Open Source License

/**
 * Connect given projects to the given repository.
 * @param repository/*  w w w  .  ja  v a 2  s.  com*/
 *            the given repository.
 * @param projects
 *            the given projects.
 */
public static void connectProjectsToRepo(Repository repository, Collection<IProject> projects) {
    for (IProject project : projects) {
        try {
            ConnectProviderOperation op = new ConnectProviderOperation(project, repository.getDirectory());
            op.execute(new NullProgressMonitor());
        } catch (CoreException e) {
            Throwables.propagate(e);
        }
    }
}

From source file:org.eclipse.ice.developer.actions.ImportLocalICEHandler.java

License:Open Source License

@Override
public Object execute(ExecutionEvent event) throws ExecutionException {

    // Grab the Util and Cache for repositories
    RepositoryUtil repositoryUtil = Activator.getDefault().getRepositoryUtil();
    RepositoryCache cache = org.eclipse.egit.core.Activator.getDefault().getRepositoryCache();
    for (String dir : repositoryUtil.getConfiguredRepositories()) {
        File repoDir = new File(dir);
        try {//w  w w  .ja v  a2 s  .  co  m
            Repository repo = cache.lookupRepository(repoDir);

            // FIXME Find a better way to find the recently added
            // ICE repo
            if (repo.getDirectory().getParentFile().getName().equals("ice")) {
                Job badJob = new Job("Import Local ICE") {
                    @Override
                    protected IStatus run(IProgressMonitor monitor) {
                        return new Status(IStatus.ERROR, "org.eclipse.ice.developer", 1,
                                "ICE is already cloned and imported into the Project Explorer.", null);
                    }
                };
                // Start the job
                badJob.schedule();
                return null;
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // Fix the maven build errors. 
    fixMavenLifecycleFile();

    // Execute the Add Repository EGit action
    IHandlerService service = CommonUtils.getService(PlatformUI.getWorkbench().getActiveWorkbenchWindow(),
            IHandlerService.class);
    UIUtils.executeCommand(service, "org.eclipse.egit.ui.RepositoriesViewAddRepository");

    // Find the ICE repository.
    for (String dir : repositoryUtil.getConfiguredRepositories()) {
        File repoDir = new File(dir);
        try {
            Repository repo = cache.lookupRepository(repoDir);

            // FIXME Find a better way to find the recently added
            // ICE repo
            if (repo.getDirectory().getParentFile().getName().equals("ice")) {
                Display.getDefault().asyncExec(new Runnable() {
                    public void run() {
                        try {
                            HandlerUtil.getActiveWorkbenchWindow(event).getActivePage()
                                    .showView(IProgressConstants.PROGRESS_VIEW_ID);
                        } catch (PartInitException e) {
                            e.printStackTrace();
                        }
                    }
                });
                importProjects(repo, new IWorkingSet[0]);
                break;
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    return null;
}

From source file:org.eclipse.mylyn.internal.github.ui.gist.CloneGistHandler.java

License:Open Source License

private void createProject(final File workDir, final String name, final Repository repository,
        IProgressMonitor monitor) throws CoreException {
    IProjectDescription description = null;
    String projectName = null;/*from ww w  . ja v a2s .  com*/
    File projectFile = new File(workDir, ".project"); //$NON-NLS-1$
    if (projectFile.exists()) {
        description = ResourcesPlugin.getWorkspace()
                .loadProjectDescription(Path.fromOSString(projectFile.getAbsolutePath()));
        projectName = description.getName();
    } else {
        description = ResourcesPlugin.getWorkspace().newProjectDescription(name);
        description.setLocation(Path.fromOSString(workDir.getAbsolutePath()));
        projectName = name;
    }

    monitor.setTaskName(Messages.CloneGistHandler_TaskCreatingProject);
    IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
    project.create(description, monitor);
    project.open(IResource.BACKGROUND_REFRESH, monitor);

    monitor.setTaskName(Messages.CloneGistHandler_TaskConnectingProject);
    new ConnectProviderOperation(project, repository.getDirectory()).execute(monitor);
}

From source file:org.eclipse.mylyn.internal.github.ui.gist.CloneGistHandler.java

License:Open Source License

private Job createCloneJob(final ExecutionEvent event, final TaskData data) {
    Job job = new Job(Messages.CloneGistHandler_TaskCloning) {

        protected IStatus run(IProgressMonitor monitor) {
            try {
                final String name = getGistName(data);

                CloneOperation operation = createCloneOperation(data, name);

                operation.addPostCloneTask(new PostCloneTask() {

                    public void execute(Repository repository, IProgressMonitor monitor) throws CoreException {
                        if (monitor.isCanceled())
                            return;
                        monitor.setTaskName(Messages.CloneGistHandler_TaskRegisteringRepository);
                        getRepoUtil().addConfiguredRepository(repository.getDirectory());
                    }/*from   w w  w  . j a v a 2s.c om*/
                });

                operation.addPostCloneTask(new PostCloneTask() {

                    public void execute(final Repository repository, IProgressMonitor monitor)
                            throws CoreException {
                        IWorkspaceRunnable runnable = new IWorkspaceRunnable() {

                            public void run(IProgressMonitor monitor) throws CoreException {
                                if (monitor.isCanceled())
                                    return;
                                createProject(repository.getDirectory().getParentFile(), name, repository,
                                        monitor);
                            }
                        };
                        ResourcesPlugin.getWorkspace().run(runnable, monitor);
                    }
                });

                operation.run(monitor);
            } catch (Exception e) {
                displayError(event, e);
                Activator.logError("Error cloning gist", e); //$NON-NLS-1$
            } finally {
                fireHandlerChanged(new HandlerEvent(CloneGistHandler.this, true, false));
            }
            return Status.OK_STATUS;
        }
    };
    return job;
}