本文整理匯總了Java中org.eclipse.jgit.treewalk.TreeWalk.next方法的典型用法代碼示例。如果您正苦於以下問題:Java TreeWalk.next方法的具體用法?Java TreeWalk.next怎麽用?Java TreeWalk.next使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類org.eclipse.jgit.treewalk.TreeWalk
的用法示例。
在下文中一共展示了TreeWalk.next方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: getSubmoduleCommitId
import org.eclipse.jgit.treewalk.TreeWalk; //導入方法依賴的package包/類
public static String getSubmoduleCommitId(Repository repository, String path, RevCommit commit) {
String commitId = null;
RevWalk rw = new RevWalk(repository);
TreeWalk tw = new TreeWalk(repository);
tw.setFilter(PathFilterGroup.createFromStrings(Collections.singleton(path)));
try {
tw.reset(commit.getTree());
while (tw.next()) {
if (tw.isSubtree() && !path.equals(tw.getPathString())) {
tw.enterSubtree();
continue;
}
if (FileMode.GITLINK == tw.getFileMode(0)) {
commitId = tw.getObjectId(0).getName();
break;
}
}
} catch (Throwable t) {
error(t, repository, "{0} can't find {1} in commit {2}", path, commit.name());
} finally {
rw.dispose();
tw.release();
}
return commitId;
}
示例2: 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;
}
示例3: 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;
}
示例4: simpleFileBrowser
import org.eclipse.jgit.treewalk.TreeWalk; //導入方法依賴的package包/類
/** 단순하게 커밋을 트리워크를 이용하여 당시 파일 내역을 출력.
* @param commit
* @return
*/
private String simpleFileBrowser(RevCommit commit){
String out = new String();
try
{
TreeWalk treeWalk = new TreeWalk(this.localRepo);
treeWalk.addTree(new RevWalk(this.localRepo).parseTree( commit));
while (treeWalk.next())
{
out+="--- /dev/null\n";
out+="+++ b/"+treeWalk.getPathString()+"\n";
out+= "+"+BlobUtils.getContent(this.localRepo, commit,treeWalk.getPathString().replace("\n", "\n+"));
out+="\n";
}
}finally{
return out;
}
}
示例5: 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;
}
示例6: 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;
}
示例7: buildDirCache
import org.eclipse.jgit.treewalk.TreeWalk; //導入方法依賴的package包/類
private void buildDirCache(TreeWalk walk, DirCacheBuilder builder)
throws MissingObjectException, IncorrectObjectTypeException,
CorruptObjectException, IOException {
while (walk.next()) {
AbstractTreeIterator cIter = walk.getTree(0,
AbstractTreeIterator.class);
if (cIter == null) {
// Not in commit, don't add to new index
continue;
}
final DirCacheEntry entry = new DirCacheEntry(walk.getRawPath());
entry.setFileMode(cIter.getEntryFileMode());
entry.setObjectIdFromRaw(cIter.idBuffer(), cIter.idOffset());
DirCacheIterator dcIter = walk.getTree(1, DirCacheIterator.class);
if (dcIter != null && dcIter.idEqual(cIter)) {
DirCacheEntry indexEntry = dcIter.getDirCacheEntry();
entry.setLastModified(indexEntry.getLastModified());
entry.setLength(indexEntry.getLength());
}
builder.add(entry);
}
}
示例8: 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;
}
示例9: 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);
}
示例10: headFiles
import org.eclipse.jgit.treewalk.TreeWalk; //導入方法依賴的package包/類
/**
* @return All files in a tree under HEAD ref in this repo.
*/
public Collection<FileInGitWorkingTree> headFiles() {
final Collection<FileInGitWorkingTree> files =
new ArrayList<>(WorkingDirectory.ESTIMATED_NUMBER_OF_FILES);
final TreeWalk walk = new WalkOverRepoHead(this.git.getRepository());
try {
while (walk.next()) {
files.add(
new FileInGitWorkingTree(
this.git,
walk.getPathString()
)
);
}
} catch (IOException e) {
throw new RuntimeException(e);
}
return files;
}
示例11: walksOverRepoHeadTest
import org.eclipse.jgit.treewalk.TreeWalk; //導入方法依賴的package包/類
@Test
public void walksOverRepoHeadTest() throws Exception{
final TreeWalk walk =
new WalkOverRepoHead(
new FakeGitTestRepo()
);
Collection<Path> paths = new ArrayList<>();
while (walk.next()) {
paths.add(
Paths.get(walk.getPathString()).getFileName()
);
}
MatcherAssert.assertThat(
paths,
Matchers.containsInAnyOrder(
Paths.get("file1"),
Paths.get("file2")
)
);
}
示例12: 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);
}
}
示例13: 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);
}
}
示例14: setObject
import org.eclipse.jgit.treewalk.TreeWalk; //導入方法依賴的package包/類
public void setObject(RevTree tree, View view, Repository repo) {
TreeWalk treeWalk = new TreeWalk(repo);
StringBuilder sb = new StringBuilder();
try {
int treeIndex = treeWalk.addTree(tree);
while (treeWalk.next()) {
ObjectId newObjectId = treeWalk.getObjectId(treeIndex);
String rawPath = new String(treeWalk.getRawPath());
sb.append(rawPath).append(" - ");
//System.out.println(newObjectId+" rawPath="+rawPath+" subTree="+ tw.isSubtree());
}
((TextView) view.findViewById(R.id.osv_tree_description)).setText(sb);
} catch (Exception e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
}
示例15: 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();
}