Example usage for org.eclipse.jgit.errors CheckoutConflictException CheckoutConflictException

List of usage examples for org.eclipse.jgit.errors CheckoutConflictException CheckoutConflictException

Introduction

In this page you can find the example usage for org.eclipse.jgit.errors CheckoutConflictException CheckoutConflictException.

Prototype

public CheckoutConflictException(String[] files) 

Source Link

Document

Construct a CheckoutConflictException for the specified set of files

Usage

From source file:org.eclipse.orion.server.git.jobs.StashApplyCommand.java

License:Eclipse Distribution License

private void resetUntracked(RevTree tree) throws CheckoutConflictException, IOException {
    TreeWalk walk = null;/*from w ww . java  2s. c  om*/
    try {
        walk = new TreeWalk(repo); // maybe NameConflictTreeWalk?
        walk.addTree(tree);
        walk.addTree(new FileTreeIterator(repo));
        walk.setRecursive(true);

        final ObjectReader reader = walk.getObjectReader();

        while (walk.next()) {
            final AbstractTreeIterator cIter = walk.getTree(0, AbstractTreeIterator.class);
            if (cIter == null)
                // Not in commit, don't create untracked
                continue;

            final DirCacheEntry entry = new DirCacheEntry(walk.getRawPath());
            entry.setFileMode(cIter.getEntryFileMode());
            entry.setObjectIdFromRaw(cIter.idBuffer(), cIter.idOffset());

            FileTreeIterator fIter = walk.getTree(1, FileTreeIterator.class);
            if (fIter != null) {
                if (fIter.isModified(entry, true, reader)) {
                    // file exists and is dirty
                    throw new CheckoutConflictException(entry.getPathString());
                }
            }

            checkoutPath(entry, reader);
        }
    } finally {
        if (walk != null)
            walk.release();
    }
}