List of usage examples for org.eclipse.jgit.lib ObjectId getName
public final String getName()
From source file:org.craftercms.studio.impl.v1.repository.git.GitContentRepository.java
License:Open Source License
@Override public String getRepoLastCommitId(final String site) { String toReturn = StringUtils.EMPTY; synchronized (helper.getRepository(site, StringUtils.isEmpty(site) ? GitRepositories.GLOBAL : SANDBOX)) { Repository repo = helper.getRepository(site, SANDBOX); try {//from www . j a v a 2 s .c om ObjectId commitId = repo.resolve(Constants.HEAD); toReturn = commitId.getName(); } catch (IOException e) { logger.error("Error getting last commit ID for site " + site, e); } } return toReturn; }
From source file:org.craftercms.studio.impl.v1.repository.git.GitContentRepository.java
License:Open Source License
@Override public String getRepoFirstCommitId(final String site) { String toReturn = StringUtils.EMPTY; synchronized (helper.getRepository(site, StringUtils.isEmpty(site) ? GitRepositories.GLOBAL : SANDBOX)) { Repository repo = helper.getRepository(site, SANDBOX); try (RevWalk rw = new RevWalk(repo)) { ObjectId head = repo.resolve(Constants.HEAD); RevCommit root = rw.parseCommit(head); rw.sort(RevSort.REVERSE);/*w w w . j a v a2 s . co m*/ rw.markStart(root); ObjectId first = rw.next(); toReturn = first.getName(); logger.error("FIRST COMMIT ID !!!: " + toReturn); } catch (IOException e) { logger.error("Error getting first commit ID for site " + site, e); } } return toReturn; }
From source file:org.dstadler.jgit.api.JGitPrintContent.java
License:BSD License
public static void main(String[] args) throws Exception { File gitWorkDir = new File("C:\\Users\\kishore\\git\\JavaRepos\\.git"); Git git = Git.open(gitWorkDir);/*from w w w . j ava 2s . c o m*/ Repository repo = git.getRepository(); ObjectId lastCommitId = repo.resolve(Constants.HEAD); RevWalk revWalk = new RevWalk(repo); RevCommit commit = revWalk.parseCommit(lastCommitId); RevTree tree = commit.getTree(); TreeWalk treeWalk = new TreeWalk(repo); treeWalk.addTree(tree); treeWalk.setRecursive(true); treeWalk.setFilter(PathFilter.ALL); if (!treeWalk.next()) { System.out.println("Nothing found!"); return; } ObjectId objectId = treeWalk.getObjectId(0); System.err.println(treeWalk.getPathString()); System.err.println(objectId.getName()); ObjectLoader loader = repo.open(objectId); ByteArrayOutputStream out = new ByteArrayOutputStream(); loader.copyTo(out); System.out.println("file1.txt:\n" + out.toString()); }
From source file:org.dstadler.jgit.api.ListFilesOfCommitAndTag.java
License:Apache License
public static void main(String[] args) throws IOException { try (Repository repository = CookbookHelper.openJGitCookbookRepository()) { List<String> paths = readElementsAt(repository, "6409ee1597a53c6fbee31edf9cde31dc3afbe20f", "src/main/java/org/dstadler/jgit/porcelain"); System.out.println("Had paths for commit: " + paths); final ObjectId testbranch = repository.resolve("testbranch"); paths = readElementsAt(repository, testbranch.getName(), "src/main/java/org/dstadler/jgit/porcelain"); System.out.println("Had paths for tag: " + paths); }/* w w w . j a va 2 s .co m*/ }
From source file:org.eclipse.che.git.impl.jgit.JGitConnection.java
License:Open Source License
@Override public MergeResult merge(MergeRequest request) throws GitException { org.eclipse.jgit.api.MergeResult jGitMergeResult; MergeResult.MergeStatus status;//ww w . j av a 2 s . c o m try { Ref ref = repository.findRef(request.getCommit()); if (ref == null) { throw new IllegalArgumentException("Invalid reference to commit for merge " + request.getCommit()); } // Shorten local branch names by removing '/refs/heads/' from the beginning String name = ref.getName(); if (name.startsWith(Constants.R_HEADS)) { name = name.substring(Constants.R_HEADS.length()); } jGitMergeResult = getGit().merge().include(name, ref.getObjectId()).call(); } catch (CheckoutConflictException exception) { jGitMergeResult = new org.eclipse.jgit.api.MergeResult(exception.getConflictingPaths()); } catch (IOException | GitAPIException exception) { throw new GitException(exception.getMessage(), exception); } switch (jGitMergeResult.getMergeStatus()) { case ALREADY_UP_TO_DATE: status = MergeResult.MergeStatus.ALREADY_UP_TO_DATE; break; case CONFLICTING: status = MergeResult.MergeStatus.CONFLICTING; break; case FAILED: status = MergeResult.MergeStatus.FAILED; break; case FAST_FORWARD: status = MergeResult.MergeStatus.FAST_FORWARD; break; case MERGED: status = MergeResult.MergeStatus.MERGED; break; case NOT_SUPPORTED: status = MergeResult.MergeStatus.NOT_SUPPORTED; break; case CHECKOUT_CONFLICT: status = MergeResult.MergeStatus.CONFLICTING; break; default: throw new IllegalStateException("Unknown merge status " + jGitMergeResult.getMergeStatus()); } ObjectId[] jGitMergedCommits = jGitMergeResult.getMergedCommits(); List<String> mergedCommits = new ArrayList<>(); if (jGitMergedCommits != null) { for (ObjectId commit : jGitMergedCommits) { mergedCommits.add(commit.getName()); } } List<String> conflicts; if (org.eclipse.jgit.api.MergeResult.MergeStatus.CHECKOUT_CONFLICT .equals(jGitMergeResult.getMergeStatus())) { conflicts = jGitMergeResult.getCheckoutConflicts(); } else { Map<String, int[][]> jGitConflicts = jGitMergeResult.getConflicts(); conflicts = jGitConflicts != null ? new ArrayList<>(jGitConflicts.keySet()) : Collections.emptyList(); } Map<String, ResolveMerger.MergeFailureReason> jGitFailing = jGitMergeResult.getFailingPaths(); ObjectId newHead = jGitMergeResult.getNewHead(); return newDto(MergeResult.class) .withFailed(jGitFailing != null ? new ArrayList<>(jGitFailing.keySet()) : Collections.emptyList()) .withNewHead(newHead != null ? newHead.getName() : null).withMergeStatus(status) .withConflicts(conflicts).withMergedCommits(mergedCommits); }
From source file:org.eclipse.egit.core.op.CommitOperation.java
License:Open Source License
private void doCommits(String actMessage, HashMap<Repository, Tree> treeMap) throws IOException, TeamException { String commitMessage = actMessage; final Date commitDate = new Date(); final TimeZone timeZone = TimeZone.getDefault(); final PersonIdent authorIdent = RawParseUtils.parsePersonIdent(author); final PersonIdent committerIdent = RawParseUtils.parsePersonIdent(committer); for (java.util.Map.Entry<Repository, Tree> entry : treeMap.entrySet()) { Tree tree = entry.getValue();//ww w.j a va 2 s . com Repository repo = tree.getRepository(); repo.getIndex().write(); writeTreeWithSubTrees(tree); ObjectId currentHeadId = repo.resolve(Constants.HEAD); ObjectId[] parentIds; if (amending) { RevCommit[] parents = previousCommit.getParents(); parentIds = new ObjectId[parents.length]; for (int i = 0; i < parents.length; i++) parentIds[i] = parents[i].getId(); } else { if (currentHeadId != null) parentIds = new ObjectId[] { currentHeadId }; else parentIds = new ObjectId[0]; } if (createChangeId) { ObjectId parentId; if (parentIds.length > 0) parentId = parentIds[0]; else parentId = null; ObjectId changeId = ChangeIdUtil.computeChangeId(tree.getId(), parentId, authorIdent, committerIdent, commitMessage); commitMessage = ChangeIdUtil.insertId(commitMessage, changeId); if (changeId != null) commitMessage = commitMessage.replaceAll( "\nChange-Id: I0000000000000000000000000000000000000000\n", //$NON-NLS-1$ "\nChange-Id: I" + changeId.getName() + "\n"); //$NON-NLS-1$ //$NON-NLS-2$ } CommitBuilder commit = new CommitBuilder(); commit.setTreeId(tree.getTreeId()); commit.setParentIds(parentIds); commit.setMessage(commitMessage); commit.setAuthor(new PersonIdent(authorIdent, commitDate, timeZone)); commit.setCommitter(new PersonIdent(committerIdent, commitDate, timeZone)); ObjectInserter inserter = repo.newObjectInserter(); ObjectId commitId; try { commitId = inserter.insert(commit); inserter.flush(); } finally { inserter.release(); } final RefUpdate ru = repo.updateRef(Constants.HEAD); ru.setNewObjectId(commitId); ru.setRefLogMessage(buildReflogMessage(commitMessage), false); if (ru.forceUpdate() == RefUpdate.Result.LOCK_FAILURE) { throw new TeamException(NLS.bind(CoreText.CommitOperation_failedToUpdate, ru.getName(), commitId)); } } }
From source file:org.eclipse.egit.core.synchronize.GitResourceVariantTreeSubscriberTest.java
License:Open Source License
/** * Both source and destination branches has some different commits but they * has also common ancestor. This situation is described more detailed in * bug #317934/*from ww w. jav a 2 s .co m*/ * * This test passes when it is run as a stand alone test case, but it fails * when it is run as part of test suite. It throws NPE when it try's to * checkout master branch. * * @throws Exception */ @Test @Ignore public void shouldReturnCommonAncestorAsBase() throws Exception { // when String fileName = "Main.java"; File file = testRepo.createFile(iProject, fileName); RevCommit commit = testRepo.appendContentAndCommit(iProject, file, "class Main {}", "initial commit"); IFile mainJava = testRepo.getIFile(iProject, file); // this should be our common ancestor ObjectId fileId = findFileId(commit, mainJava); testRepo.createAndCheckoutBranch(Constants.HEAD, Constants.R_HEADS + "test"); testRepo.appendContentAndCommit(iProject, file, "// test 1", "second commit"); testRepo.checkoutBranch(Constants.R_HEADS + Constants.MASTER); testRepo.appendContentAndCommit(iProject, file, "// test 2", "third commit"); // given GitResourceVariantTreeSubscriber grvts = createGitResourceVariantTreeSubscriber(Constants.HEAD, Constants.R_HEADS + "test"); grvts.getBaseTree(); IResourceVariantTree baseTree = grvts.getBaseTree(); // then IResourceVariant actual = commonAssertionsForBaseTree(baseTree, mainJava); assertEquals(fileId.getName(), actual.getContentIdentifier()); }
From source file:org.eclipse.egit.core.synchronize.GitResourceVariantTreeSubscriberTest.java
License:Open Source License
/** * This test passes when it is run as a stand alone test case, but it fails * when it is run as part of test suite. It throws NPE when it try's to * checkout master branch./*from ww w .j a v a 2 s . c o m*/ * * @throws Exception */ @Test @Ignore public void shouldReturnRemoteTree() throws Exception { // when String fileName = "Main.java"; File file = testRepo.createFile(iProject, fileName); testRepo.appendContentAndCommit(iProject, file, "class Main {}", "initial commit"); IFile mainJava = testRepo.getIFile(iProject, file); testRepo.createAndCheckoutBranch(Constants.HEAD, Constants.R_HEADS + "test"); RevCommit commit = testRepo.appendContentAndCommit(iProject, file, "// test 1", "second commit"); ObjectId fileId = findFileId(commit, mainJava); // given GitResourceVariantTreeSubscriber grvts = createGitResourceVariantTreeSubscriber(Constants.HEAD, "test"); grvts.getBaseTree(); IResourceVariantTree remoteTree = grvts.getRemoteTree(); // then assertNotNull(remoteTree); assertTrue(remoteTree instanceof GitRemoteResourceVariantTree); IResourceVariant resourceVariant = remoteTree.getResourceVariant(mainJava); assertNotNull(resourceVariant); assertTrue(resourceVariant instanceof GitResourceVariant); assertEquals(fileId.getName(), resourceVariant.getContentIdentifier()); }
From source file:org.eclipse.egit.ui.internal.actions.ResetMenu.java
License:Open Source License
/** * @param shell//from www .ja v a 2 s. c o m * @param repo * @param commitId * @param resetType */ public static void performReset(Shell shell, final Repository repo, final ObjectId commitId, ResetType resetType) { final String jobName; switch (resetType) { case HARD: if (!CommandConfirmation.confirmHardReset(shell, repo)) { return; } jobName = UIText.HardResetToRevisionAction_hardReset; break; case SOFT: jobName = UIText.SoftResetToRevisionAction_softReset; break; case MIXED: jobName = UIText.MixedResetToRevisionAction_mixedReset; break; default: return; // other types are currently not used } ResetOperation operation = new ResetOperation(repo, commitId.getName(), resetType); JobUtil.scheduleUserWorkspaceJob(operation, jobName, JobFamilies.RESET); }
From source file:org.eclipse.egit.ui.internal.history.command.OpenInTextEditorHandler.java
License:Open Source License
public Object execute(ExecutionEvent event) throws ExecutionException { IStructuredSelection selection = getSelection(getPage()); if (selection.size() < 1) return null; Object input = getPage().getInputInternal().getSingleFile(); if (input == null) return null; boolean errorOccured = false; List<ObjectId> ids = new ArrayList<ObjectId>(); String gitPath = null;// w w w. j av a 2 s . com if (input instanceof IFile) { IFile resource = (IFile) input; final RepositoryMapping map = RepositoryMapping.getMapping(resource); gitPath = map.getRepoRelativePath(resource); Iterator<?> it = selection.iterator(); while (it.hasNext()) { RevCommit commit = (RevCommit) it.next(); IFileRevision rev = null; try { rev = CompareUtils.getFileRevision(gitPath, commit, map.getRepository(), null); } catch (IOException e) { Activator.logError(NLS.bind(UIText.GitHistoryPage_errorLookingUpPath, gitPath, commit.getId()), e); errorOccured = true; } if (rev != null) { try { EgitUiEditorUtils.openTextEditor(getPart(event).getSite().getPage(), rev, null); } catch (CoreException e) { Activator.logError(e.getMessage(), e); errorOccured = true; } } else { ids.add(commit.getId()); } } } if (input instanceof File) { Repository repo = getRepository(event); File fileInput = (File) input; gitPath = getRepoRelativePath(repo, fileInput); Iterator<?> it = selection.iterator(); while (it.hasNext()) { RevCommit commit = (RevCommit) it.next(); IFileRevision rev = null; try { rev = CompareUtils.getFileRevision(gitPath, commit, repo, null); } catch (IOException e) { Activator.logError(NLS.bind(UIText.GitHistoryPage_errorLookingUpPath, gitPath, commit.getId()), e); errorOccured = true; } if (rev != null) { try { EgitUiEditorUtils.openTextEditor(getPart(event).getSite().getPage(), rev, null); } catch (CoreException e) { Activator.logError(e.getMessage(), e); errorOccured = true; } } else { ids.add(commit.getId()); } } } if (errorOccured) Activator.showError(UIText.GitHistoryPage_openFailed, null); if (ids.size() > 0) { StringBuilder idList = new StringBuilder(""); //$NON-NLS-1$ for (ObjectId objectId : ids) idList.append(objectId.getName()).append(' '); MessageDialog.openError(getPart(event).getSite().getShell(), UIText.GitHistoryPage_fileNotFound, NLS.bind(UIText.GitHistoryPage_notContainedInCommits, gitPath, idList.toString())); } return null; }