本文整理匯總了Java中org.eclipse.jgit.treewalk.TreeWalk.setRecursive方法的典型用法代碼示例。如果您正苦於以下問題:Java TreeWalk.setRecursive方法的具體用法?Java TreeWalk.setRecursive怎麽用?Java TreeWalk.setRecursive使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類org.eclipse.jgit.treewalk.TreeWalk
的用法示例。
在下文中一共展示了TreeWalk.setRecursive方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: isDirectory
import org.eclipse.jgit.treewalk.TreeWalk; //導入方法依賴的package包/類
/** 파일주소와 커밋아이디를 바탕으로 디렉토리인지 검사함.
* @param commitID
* @param filePath
* @return
*/
public boolean isDirectory(String commitID, String filePath){
if(filePath.length() == 0)
return true;
try{
ObjectId revId = this.localRepo.resolve(commitID);
TreeWalk treeWalk = new TreeWalk(this.localRepo);
treeWalk.addTree(new RevWalk(this.localRepo).parseTree(revId));
treeWalk.setRecursive(true);
while (treeWalk.next()) {
if(treeWalk.getPathString().equals(filePath)){
return false;
}
}
treeWalk.reset(new RevWalk(this.localRepo).parseTree(revId));
while (treeWalk.next()) {
if(treeWalk.getPathString().startsWith(filePath)){
return true;
}
}
}catch(Exception e){
return false;
}
return false;
}
示例2: getGitFileList
import org.eclipse.jgit.treewalk.TreeWalk; //導入方法依賴的package包/類
/** 저장소의 파일 목록을 커밋 아이디를 가지고 가져옴.
* @param commitID
* @return
*/
public List<String> getGitFileList(String commitID) {
List<String> fileList = new ArrayList<String>();
try{
ObjectId revId = this.localRepo.resolve(commitID);
TreeWalk treeWalk = new TreeWalk(this.localRepo);
treeWalk.addTree(new RevWalk(this.localRepo).parseTree(revId));
treeWalk.setRecursive(true);
while (treeWalk.next()) {
fileList.add("/"+treeWalk.getPathString());
}
}catch(Exception e){
System.out.println(e.getMessage());
}
return fileList;
}
示例3: getLoaderFrom
import org.eclipse.jgit.treewalk.TreeWalk; //導入方法依賴的package包/類
/**
* Gets the loader for a file from a specified commit and its path
*
* @param commit
* - the commit from which to get the loader
* @param path
* - the path to the file
* @return the loader
* @throws MissingObjectException
* @throws IncorrectObjectTypeException
* @throws CorruptObjectException
* @throws IOException
*/
public ObjectLoader getLoaderFrom(ObjectId commit, String path)
throws IOException {
Repository repository = git.getRepository();
RevWalk revWalk = new RevWalk(repository);
RevCommit revCommit = revWalk.parseCommit(commit);
// and using commit's tree find the path
RevTree tree = revCommit.getTree();
TreeWalk treeWalk = new TreeWalk(repository);
treeWalk.addTree(tree);
treeWalk.setRecursive(true);
treeWalk.setFilter(PathFilter.create(path));
ObjectLoader loader = null;
if (treeWalk.next()) {
ObjectId objectId = treeWalk.getObjectId(0);
loader = repository.open(objectId);
}
treeWalk.close();
revWalk.close();
return loader;
}
示例4: getGitFileList
import org.eclipse.jgit.treewalk.TreeWalk; //導入方法依賴的package包/類
/** 프로젝트의 파일 목록을 커밋 아이디를 가지고 가져옴.
* @param commitID
* @return
*/
public List<String> getGitFileList(String commitID) {
List<String> fileList = new ArrayList<String>();
try{
ObjectId revId = this.localRepo.resolve(commitID);
TreeWalk treeWalk = new TreeWalk(this.localRepo);
treeWalk.addTree(new RevWalk(this.localRepo).parseTree(revId));
treeWalk.setRecursive(true);
while (treeWalk.next()) {
fileList.add("/"+treeWalk.getPathString());
}
}catch(Exception e){
System.out.println(e.getMessage());
}
return fileList;
}
示例5: iterator
import org.eclipse.jgit.treewalk.TreeWalk; //導入方法依賴的package包/類
@Override
public Iterator<TreeWalkerEntry> iterator() {
Repository repository = commit.getGitRepository().getRepository();
TreeWalk treeWalk = new TreeWalk(repository);
treeWalk.setRecursive(true);
RevTree tree = getCommit().getRevCommit().getTree();
try {
treeWalk.addTree(tree);
TreeWalkerIterator treeWalkerIterator = new TreeWalkerIterator(
treeWalk, this);
iterators.add(treeWalkerIterator);
return treeWalkerIterator;
} catch (IOException e) {
throw new RuntimeException(e);
}
}
示例6: getFileFromCommit
import org.eclipse.jgit.treewalk.TreeWalk; //導入方法依賴的package包/類
public static boolean getFileFromCommit(final OutputStream os, final String file, final Repository repo, final RevTree tree) throws IOException, GitAPIException {
final TreeWalk treeWalk = new TreeWalk(repo);
treeWalk.addTree(tree);
treeWalk.setRecursive(true);
treeWalk.setFilter(PathFilter.create(file));
if (!treeWalk.next()) {
logger.info("Did not find expected file '" + file + "'");
return false;
}
final ObjectId objectId = treeWalk.getObjectId(0);
final ObjectLoader loader = repo.open(objectId);
// and then one can the loader to read the file
loader.copyTo(os);
return true;
}
示例7: getBlob
import org.eclipse.jgit.treewalk.TreeWalk; //導入方法依賴的package包/類
private Optional<String[]> getBlob(Git git, String fileName, CodeRevision revision)
throws IOException {
TreeWalk treeWalk = new TreeWalk(git.getRepository());
treeWalk.addTree(getTreeIterator(git, revision));
treeWalk.setFilter(PathFilter.create(fileName));
treeWalk.setRecursive(true);
if (!treeWalk.next()) {
return Optional.empty();
}
ObjectId blobId = treeWalk.getObjectId(0);
String content = new String(git.getRepository().getObjectDatabase().open(blobId).getBytes(),
Charset.forName("UTF-8"));
String[] lines = content.split("\n");
return Optional.of(lines);
}
示例8: doStatus
import org.eclipse.jgit.treewalk.TreeWalk; //導入方法依賴的package包/類
public static SCMStatus doStatus(File baseDir) throws RuntimeException {
try {
Map<String, Boolean> map = new HashMap<String, Boolean>();
FileRepositoryBuilder builder = new FileRepositoryBuilder();
Repository repository = builder.setGitDir(new File(baseDir, ".git")).build();
TreeWalk treeWalk = new TreeWalk(repository);
treeWalk.addTree(getTree(repository));
treeWalk.setRecursive(true);
while (treeWalk.next()) {
map.put(treeWalk.getPathString(), Boolean.TRUE);
}
log.info("-----------------------------------------------------------------------------------------------");
log.info("PROJECT IS UNDER GIT: Files tracked by git ({}) won't be overwritten/deleted by Celerio", map.size());
log.info("-----------------------------------------------------------------------------------------------");
return new SCMStatus(map);
} catch (IOException ioe) {
throw new RuntimeException(ioe);
}
}
示例9: getFileAsDiffFormat
import org.eclipse.jgit.treewalk.TreeWalk; //導入方法依賴的package包/類
public List<DiffInfo> getFileAsDiffFormat(RepositoryPK repositoryPK, String ref) {
try (RepositoryReader reader = new RepositoryReader(repositoryPK)) {
Git git = reader.getGit();
Repository repository = reader.getRepository();
ObjectId objectId = repository.resolve(ref);
List<RevCommit> commits = getFirstCommits(git, objectId, null, 2);
TreeWalk treeWalk = new TreeWalk(repository);
List<DiffInfo> diffInfos = new ArrayList<>();
treeWalk.addTree(commits.get(0).getTree());
treeWalk.setRecursive(true);
while (treeWalk.next()) {
ObjectId fileId = treeWalk.getObjectId(0);
if (!treeWalk.isSubtree()) {
FileContent fileContent = getFileContent(git, treeWalk.getPathString(), fileId);
diffInfos.add(DiffInfo.ofNewCommit(fileContent));
}
}
return diffInfos;
} catch (IOException | GitAPIException e) {
throw new RuntimeException(e);
}
}
示例10: gitRepoContainsFile
import org.eclipse.jgit.treewalk.TreeWalk; //導入方法依賴的package包/類
public static boolean gitRepoContainsFile(Repository repository, String file) throws IllegalStateException, IOException {
ObjectId lastCommitId = repository.resolve(Constants.HEAD);
// a RevWalk allows to walk over commits based on some filtering
RevWalk revWalk = new RevWalk(repository);
RevCommit commit = revWalk.parseCommit(lastCommitId);
// and using commit's tree find the path
RevTree tree = commit.getTree();
TreeWalk treeWalk = new TreeWalk(repository);
treeWalk.addTree(tree);
treeWalk.setRecursive(true);
treeWalk.setFilter(PathFilter.create(file));
return treeWalk.next();
}
示例11: collectRename
import org.eclipse.jgit.treewalk.TreeWalk; //導入方法依賴的package包/類
@NotNull
private Map<String, String> collectRename(@NotNull GitFile oldTree, @NotNull GitFile newTree) throws IOException {
if (!renameDetection) {
return Collections.emptyMap();
}
final GitObject<ObjectId> oldTreeId = oldTree.getObjectId();
final GitObject<ObjectId> newTreeId = newTree.getObjectId();
if (oldTreeId == null || newTreeId == null || !Objects.equals(oldTreeId.getRepo(), newTreeId.getRepo())) {
return Collections.emptyMap();
}
final TreeWalk tw = new TreeWalk(repository);
tw.setRecursive(true);
tw.addTree(oldTree.getObjectId().getObject());
tw.addTree(newTree.getObjectId().getObject());
final RenameDetector rd = new RenameDetector(repository);
rd.addAll(DiffEntry.scan(tw));
final Map<String, String> result = new HashMap<>();
for (DiffEntry diff : rd.compute(tw.getObjectReader(), null)) {
if (diff.getScore() >= rd.getRenameScore()) {
result.put(StringHelper.normalize(diff.getNewPath()), StringHelper.normalize(diff.getOldPath()));
}
}
return result;
}
示例12: lsTree
import org.eclipse.jgit.treewalk.TreeWalk; //導入方法依賴的package包/類
/** {@inheritDoc} */
@Deprecated
public List<IndexEntry> lsTree(String treeIsh, boolean recursive) throws GitException, InterruptedException {
try (Repository repo = getRepository();
ObjectReader or = repo.newObjectReader();
RevWalk w = new RevWalk(or)) {
TreeWalk tree = new TreeWalk(or);
tree.addTree(w.parseTree(repo.resolve(treeIsh)));
tree.setRecursive(recursive);
List<IndexEntry> r = new ArrayList<>();
while (tree.next()) {
RevObject rev = w.parseAny(tree.getObjectId(0));
r.add(new IndexEntry(
String.format("%06o", tree.getRawMode(0)),
typeString(rev.getType()),
tree.getObjectId(0).name(),
tree.getNameString()));
}
return r;
} catch (IOException e) {
throw new GitException(e);
}
}
示例13: listFiles
import org.eclipse.jgit.treewalk.TreeWalk; //導入方法依賴的package包/類
private void listFiles() throws GitException {
RevWalk revWalk = new RevWalk(repository);
TreeWalk walk = new TreeWalk(repository);
try {
List<GitFileInfo> result;
walk.reset();
walk.setRecursive(true);
RevCommit parentCommit = null;
if (revCommit.getParentCount() > 0) {
for (RevCommit commit : revCommit.getParents()) {
revWalk.markStart(revWalk.lookupCommit(commit));
}
revWalk.setRevFilter(RevFilter.MERGE_BASE);
Iterator<RevCommit> it = revWalk.iterator();
if (it.hasNext()) {
parentCommit = it.next();
}
if (parentCommit != null) {
walk.addTree(parentCommit.getTree().getId());
}
}
walk.addTree(revCommit.getTree().getId());
walk.setFilter(AndTreeFilter.create(TreeFilter.ANY_DIFF, PathFilter.ANY_DIFF));
if (parentCommit != null) {
result = Utils.getDiffEntries(repository, walk, GitClassFactoryImpl.getInstance());
} else {
result = new ArrayList<GitFileInfo>();
while (walk.next()) {
result.add(new GitFileInfo(new File(repository.getWorkTree(), walk.getPathString()), walk.getPathString(), GitFileInfo.Status.ADDED, null, null));
}
}
this.modifiedFiles = result.toArray(new GitFileInfo[result.size()]);
} catch (IOException ex) {
throw new GitException(ex);
} finally {
revWalk.release();
walk.release();
}
}
示例14: checkout
import org.eclipse.jgit.treewalk.TreeWalk; //導入方法依賴的package包/類
public void checkout () throws IOException, GitException {
TreeWalk treeWalk = new TreeWalk(repository);
Collection<String> relativePaths = Utils.getRelativePaths(repository.getWorkTree(), roots);
if (!relativePaths.isEmpty()) {
treeWalk.setFilter(PathFilterGroup.createFromStrings(relativePaths));
}
treeWalk.setRecursive(true);
treeWalk.reset();
treeWalk.addTree(new DirCacheIterator(cache));
treeWalk.addTree(new FileTreeIterator(repository));
String lastAddedPath = null;
ObjectReader od = repository.newObjectReader();
try {
while (treeWalk.next() && !monitor.isCanceled()) {
File path = new File(repository.getWorkTree(), treeWalk.getPathString());
if (treeWalk.getPathString().equals(lastAddedPath)) {
// skip conflicts
continue;
} else {
lastAddedPath = treeWalk.getPathString();
}
DirCacheIterator dit = treeWalk.getTree(0, DirCacheIterator.class);
FileTreeIterator fit = treeWalk.getTree(1, FileTreeIterator.class);
if (dit != null && (recursively || directChild(roots, repository.getWorkTree(), path)) && (fit == null || fit.isModified(dit.getDirCacheEntry(), checkContent, od))) {
// update entry
listener.notifyFile(path, treeWalk.getPathString());
checkoutEntry(repository, path, dit.getDirCacheEntry(), od);
}
}
} finally {
od.release();
treeWalk.release();
}
}
示例15: getLastRevision
import org.eclipse.jgit.treewalk.TreeWalk; //導入方法依賴的package包/類
public static void getLastRevision(Git git, String base, String name,
String rev, OutputStream out, String ext)
throws WsSrvException, IOException {
checkFile(base, name, ext);
String fp = getLocalPath(name);
// find the HEAD
ObjectId lastCommitId = git.getRepository().resolve(Constants.HEAD);
// a RevWalk allows to walk over commits based on
// some filtering that is defined
RevWalk revWalk = new RevWalk(git.getRepository());
RevCommit commit = revWalk.parseCommit(lastCommitId);
// and using commit's tree find the path
RevTree tree = commit.getTree();
System.out.println("Having tree: " + tree);
// now try to find a specific file
TreeWalk treeWalk = new TreeWalk(git.getRepository());
treeWalk.addTree(tree);
treeWalk.setRecursive(true);
treeWalk.setFilter(PathFilter.create(fp));
if (!treeWalk.next()) {
throw new IllegalStateException(
"Did not find expected file 'README.md'");
}
ObjectId objectId = treeWalk.getObjectId(0);
System.out.println("ObjectId: " + objectId.toString());
ObjectLoader loader = git.getRepository().open(objectId);
// and then one can the loader to read the file
loader.copyTo(System.out);
revWalk.dispose();
}