List of usage examples for org.eclipse.jgit.lib Repository newObjectReader
@NonNull
public ObjectReader newObjectReader()
From source file:org.uberfire.java.nio.fs.jgit.util.JGitUtil.java
License:Apache License
public static List<DiffEntry> getDiff(final Repository repo, final ObjectId oldRef, final ObjectId newRef) { if (oldRef == null || newRef == null || repo == null) { return emptyList(); }/* w w w . ja v a2s . c o m*/ try { ObjectReader reader = repo.newObjectReader(); CanonicalTreeParser oldTreeIter = new CanonicalTreeParser(); oldTreeIter.reset(reader, oldRef); CanonicalTreeParser newTreeIter = new CanonicalTreeParser(); newTreeIter.reset(reader, newRef); return new CustomDiffCommand(repo).setNewTree(newTreeIter).setOldTree(oldTreeIter) .setShowNameAndStatusOnly(true).call(); } catch (final Exception ex) { throw new RuntimeException(ex); } }
From source file:org.walkmod.git.constraints.JavaConstraintProvider.java
License:Open Source License
private static AbstractTreeIterator prepareTreeParser(Repository repository, String objectId) throws IOException, MissingObjectException, IncorrectObjectTypeException { // from the commit we can build the tree which allows us to construct the TreeParser RevWalk walk = new RevWalk(repository); ObjectId oid = repository.resolve(objectId); RevCommit commit = walk.parseCommit(oid); RevTree tree = walk.parseTree(commit.getTree().getId()); CanonicalTreeParser oldTreeParser = new CanonicalTreeParser(); ObjectReader oldReader = repository.newObjectReader(); oldTreeParser.reset(oldReader, tree.getId()); walk.dispose();/*from w w w . j a va 2s.c o m*/ walk.close(); oldReader.close(); return oldTreeParser; }
From source file:org.wso2.security.tools.scanner.dependency.js.reportpublisher.GitUploader.java
License:Open Source License
/** * Populate all the files to update, if the system should update. *//* w ww .jav a 2 s . co m*/ private boolean populateDiff() { try { gitRepo.fetch() .setCredentialsProvider(new UsernamePasswordCredentialsProvider( new String(gitUploaderProperties.getGitUsername()), new String(gitUploaderProperties.getGitPassword()))) .call(); Repository repo = gitRepo.getRepository(); ObjectId fetchHead = repo.resolve("FETCH_HEAD^{tree}"); ObjectId head = repo.resolve("HEAD^{tree}"); ObjectReader reader = repo.newObjectReader(); CanonicalTreeParser oldTreeIter = new CanonicalTreeParser(); oldTreeIter.reset(reader, head); CanonicalTreeParser newTreeIter = new CanonicalTreeParser(); newTreeIter.reset(reader, fetchHead); List<DiffEntry> diffs = gitRepo.diff().setShowNameAndStatusOnly(true).setNewTree(newTreeIter) .setOldTree(oldTreeIter).call(); return !diffs.isEmpty(); } catch (GitAPIException | IOException e) { log.error("[JS_SEC_DAILY_SCAN] " + "Security artifact repo pull action failed.", e); } return true; }
From source file:pl.project13.jgit.DescribeResultTest.java
License:Open Source License
@Test public void shouldToStringForDirtyTag() throws Exception { // given/*from w w w . ja v a2 s. co m*/ Repository repo = git().getRepository(); git().reset().setMode(ResetCommand.ResetType.HARD).call(); DescribeResult res = new DescribeResult(repo.newObjectReader(), VERSION, 2, HEAD_OBJECT_ID, true, DIRTY_MARKER); // when String s = res.toString(); // then assertThat(s).isEqualTo(VERSION + "-" + 2 + "-" + G_DEFAULT_ABBREV_COMMIT_ID + DIRTY_MARKER); }
From source file:pl.project13.jgit.DescribeResultTest.java
License:Open Source License
@Test public void shouldToStringForDirtyTagAnd10Abbrev() throws Exception { // given/*from ww w . j a v a 2 s. co m*/ Repository repo = git().getRepository(); git().reset().setMode(ResetCommand.ResetType.HARD).call(); DescribeResult res = new DescribeResult(repo.newObjectReader(), VERSION, 2, HEAD_OBJECT_ID, true, DIRTY_MARKER).withCommitIdAbbrev(10); String expectedHash = "gb6a73ed747"; // when String s = res.toString(); // then assertThat(s).isEqualTo(VERSION + "-" + 2 + "-" + expectedHash + DIRTY_MARKER); }
From source file:pl.project13.jgit.DescribeResultTest.java
License:Open Source License
@Test public void shouldToStringFor2CommitsAwayFromTag() throws Exception { // given/*from w ww . j av a 2s . co m*/ Repository repo = git().getRepository(); git().reset().setMode(ResetCommand.ResetType.HARD).call(); DescribeResult res = new DescribeResult(repo.newObjectReader(), VERSION, 2, HEAD_OBJECT_ID); // when String s = res.toString(); // then assertThat(s).isEqualTo(VERSION + "-" + 2 + "-" + G_DEFAULT_ABBREV_COMMIT_ID); }
From source file:pl.project13.jgit.DescribeResultTest.java
License:Open Source License
@Test public void shouldToStringForNoTagJustACommit() throws Exception { // given/* w ww . j ava2 s .c om*/ Repository repo = git().getRepository(); git().reset().setMode(ResetCommand.ResetType.HARD).call(); DescribeResult res = new DescribeResult(repo.newObjectReader(), HEAD_OBJECT_ID); // when String s = res.toString(); // then assertThat(s).isEqualTo(DEFAULT_ABBREV_COMMIT_ID); }
From source file:pl.project13.maven.git.GitCommitIdMojo.java
License:Open Source License
void loadGitData(@NotNull Properties properties) throws IOException, MojoExecutionException { Repository git = getGitRepository(); ObjectReader objectReader = git.newObjectReader(); // git.user.name String userName = git.getConfig().getString("user", null, "name"); put(properties, BUILD_AUTHOR_NAME, userName); // git.user.email String userEmail = git.getConfig().getString("user", null, "email"); put(properties, BUILD_AUTHOR_EMAIL, userEmail); // more details parsed out bellow Ref HEAD = git.getRef(Constants.HEAD); if (HEAD == null) { throw new MojoExecutionException( "Could not get HEAD Ref, are you sure you've set the dotGitDirectory property of this plugin to a valid path?"); }// w ww .j a va2 s .com RevWalk revWalk = new RevWalk(git); RevCommit headCommit = revWalk.parseCommit(HEAD.getObjectId()); revWalk.markStart(headCommit); try { // git.branch String branch = determineBranchName(git, System.getenv()); put(properties, BRANCH, branch); // git.commit.id.describe maybePutGitDescribe(properties, git); // git.commit.id put(properties, COMMIT_ID, headCommit.getName()); // git.commit.id.abbrev putAbbrevCommitId(objectReader, properties, headCommit, abbrevLength); // git.commit.author.name String commitAuthor = headCommit.getAuthorIdent().getName(); put(properties, COMMIT_AUTHOR_NAME, commitAuthor); // git.commit.author.email String commitEmail = headCommit.getAuthorIdent().getEmailAddress(); put(properties, COMMIT_AUTHOR_EMAIL, commitEmail); // git commit.message.full String fullMessage = headCommit.getFullMessage(); put(properties, COMMIT_MESSAGE_FULL, fullMessage); // git commit.message.short String shortMessage = headCommit.getShortMessage(); put(properties, COMMIT_MESSAGE_SHORT, shortMessage); long timeSinceEpoch = headCommit.getCommitTime(); Date commitDate = new Date(timeSinceEpoch * 1000); // git is "by sec" and java is "by ms" SimpleDateFormat smf = new SimpleDateFormat(dateFormat); put(properties, COMMIT_TIME, smf.format(commitDate)); // git remote.origin.url String remoteOriginUrl = git.getConfig().getString("remote", "origin", "url"); put(properties, REMOTE_ORIGIN_URL, remoteOriginUrl); } finally { revWalk.dispose(); } }
From source file:playRepository.GitRepository.java
License:Apache License
private static List<FileDiff> getFileDiffs(final Repository repositoryA, Repository repositoryB, ObjectId commitA, ObjectId commitB) throws IOException { class MultipleRepositoryObjectReader extends ObjectReader { Collection<ObjectReader> readers = new HashSet<>(); @Override//from w w w.java 2s . c om public ObjectReader newReader() { return new MultipleRepositoryObjectReader(readers); } public MultipleRepositoryObjectReader(Collection<ObjectReader> readers) { this.readers = readers; } public MultipleRepositoryObjectReader() { this.readers = new HashSet<>(); } public void addObjectReader(ObjectReader reader) { this.readers.add(reader); } @Override public Collection<ObjectId> resolve(AbbreviatedObjectId id) throws IOException { Set<ObjectId> result = new HashSet<>(); for (ObjectReader reader : readers) { result.addAll(reader.resolve(id)); } return result; } @Override public ObjectLoader open(AnyObjectId objectId, int typeHint) throws IOException { for (ObjectReader reader : readers) { if (reader.has(objectId, typeHint)) { return reader.open(objectId, typeHint); } } return null; } @Override public Set<ObjectId> getShallowCommits() throws IOException { Set<ObjectId> union = new HashSet<>(); for (ObjectReader reader : readers) { union.addAll(reader.getShallowCommits()); } return union; } } final MultipleRepositoryObjectReader reader = new MultipleRepositoryObjectReader(); reader.addObjectReader(repositoryA.newObjectReader()); reader.addObjectReader(repositoryB.newObjectReader()); @SuppressWarnings("rawtypes") Repository fakeRepo = new Repository(new BaseRepositoryBuilder()) { @Override public void create(boolean bare) throws IOException { throw new UnsupportedOperationException(); } @Override public ObjectDatabase getObjectDatabase() { throw new UnsupportedOperationException(); } @Override public RefDatabase getRefDatabase() { throw new UnsupportedOperationException(); } @Override public StoredConfig getConfig() { return repositoryA.getConfig(); } @Override public void scanForRepoChanges() throws IOException { throw new UnsupportedOperationException(); } @Override public void notifyIndexChanged() { throw new UnsupportedOperationException(); } @Override public ReflogReader getReflogReader(String refName) throws IOException { throw new UnsupportedOperationException(); } public ObjectReader newObjectReader() { return reader; } }; DiffFormatter formatter = new DiffFormatter(NullOutputStream.INSTANCE); formatter.setRepository(fakeRepo); formatter.setDetectRenames(true); AbstractTreeIterator treeParserA, treeParserB; RevTree treeA = null, treeB = null; if (commitA != null) { treeA = new RevWalk(repositoryA).parseTree(commitA); treeParserA = new CanonicalTreeParser(); ((CanonicalTreeParser) treeParserA).reset(reader, treeA); } else { treeParserA = new EmptyTreeIterator(); } if (commitB != null) { treeB = new RevWalk(repositoryB).parseTree(commitB); treeParserB = new CanonicalTreeParser(); ((CanonicalTreeParser) treeParserB).reset(reader, treeB); } else { treeParserB = new EmptyTreeIterator(); } List<FileDiff> result = new ArrayList<>(); int size = 0; int lines = 0; for (DiffEntry diff : formatter.scan(treeParserA, treeParserB)) { FileDiff fileDiff = new FileDiff(); fileDiff.commitA = commitA != null ? commitA.getName() : null; fileDiff.commitB = commitB != null ? commitB.getName() : null; fileDiff.changeType = diff.getChangeType(); fileDiff.oldMode = diff.getOldMode(); fileDiff.newMode = diff.getNewMode(); String pathA = diff.getPath(DiffEntry.Side.OLD); String pathB = diff.getPath(DiffEntry.Side.NEW); byte[] rawA = null; if (treeA != null && Arrays.asList(DELETE, MODIFY, RENAME, COPY).contains(diff.getChangeType())) { TreeWalk t1 = TreeWalk.forPath(repositoryA, pathA, treeA); ObjectId blobA = t1.getObjectId(0); fileDiff.pathA = pathA; try { rawA = repositoryA.open(blobA).getBytes(); fileDiff.isBinaryA = RawText.isBinary(rawA); fileDiff.a = fileDiff.isBinaryA ? null : new RawText(rawA); } catch (org.eclipse.jgit.errors.LargeObjectException e) { fileDiff.addError(FileDiff.Error.A_SIZE_EXCEEDED); } } byte[] rawB = null; if (treeB != null && Arrays.asList(ADD, MODIFY, RENAME, COPY).contains(diff.getChangeType())) { TreeWalk t2 = TreeWalk.forPath(repositoryB, pathB, treeB); ObjectId blobB = t2.getObjectId(0); fileDiff.pathB = pathB; try { rawB = repositoryB.open(blobB).getBytes(); fileDiff.isBinaryB = RawText.isBinary(rawB); fileDiff.b = fileDiff.isBinaryB ? null : new RawText(rawB); } catch (org.eclipse.jgit.errors.LargeObjectException e) { fileDiff.addError(FileDiff.Error.B_SIZE_EXCEEDED); } } if (size > DIFF_SIZE_LIMIT || lines > DIFF_LINE_LIMIT) { fileDiff.addError(FileDiff.Error.OTHERS_SIZE_EXCEEDED); result.add(fileDiff); continue; } // Get diff if necessary if (fileDiff.a != null && fileDiff.b != null && !(fileDiff.isBinaryA || fileDiff.isBinaryB) && Arrays.asList(MODIFY, RENAME).contains(diff.getChangeType())) { DiffAlgorithm diffAlgorithm = DiffAlgorithm .getAlgorithm(repositoryB.getConfig().getEnum(ConfigConstants.CONFIG_DIFF_SECTION, null, ConfigConstants.CONFIG_KEY_ALGORITHM, DiffAlgorithm.SupportedAlgorithm.HISTOGRAM)); fileDiff.editList = diffAlgorithm.diff(RawTextComparator.DEFAULT, fileDiff.a, fileDiff.b); size += fileDiff.getHunks().size; lines += fileDiff.getHunks().lines; } // update lines and sizes if (fileDiff.b != null && !fileDiff.isBinaryB && diff.getChangeType().equals(ADD)) { lines += fileDiff.b.size(); size += rawB.length; } // update lines and sizes if (fileDiff.a != null && !fileDiff.isBinaryA && diff.getChangeType().equals(DELETE)) { lines += fileDiff.a.size(); size += rawA.length; } // Stop if exceeds the limit for total number of files if (result.size() > DIFF_FILE_LIMIT) { break; } result.add(fileDiff); } return result; }
From source file:svnserver.repository.git.GitRepository.java
License:GNU General Public License
@NotNull private static String loadRepositoryId(@NotNull Repository repository, @NotNull String refName) throws IOException { final Ref ref = repository.getRef(refName); if (ref == null) { throw new IllegalStateException(); }/*from w w w.ja v a 2 s . c om*/ ObjectId oid = ref.getObjectId(); final RevWalk revWalk = new RevWalk(repository); while (true) { final RevCommit revCommit = revWalk.parseCommit(oid); if (revCommit.getParentCount() == 0) { return LayoutHelper.loadRepositoryId(repository.newObjectReader(), oid); } oid = revCommit.getParent(0); } }