Example usage for org.eclipse.jgit.lib Constants HEAD

List of usage examples for org.eclipse.jgit.lib Constants HEAD

Introduction

In this page you can find the example usage for org.eclipse.jgit.lib Constants HEAD.

Prototype

String HEAD

To view the source code for org.eclipse.jgit.lib Constants HEAD.

Click Source Link

Document

Special name for the "HEAD" symbolic-ref.

Usage

From source file:com.googlesource.gerrit.plugins.replication.ReplicationQueue.java

License:Apache License

private static void createLocally(URIish uri, String head) {
    try (Repository repo = new FileRepository(uri.getPath())) {
        repo.create(true /* bare */);

        if (head != null) {
            RefUpdate u = repo.updateRef(Constants.HEAD);
            u.disableRefLog();//from  ww  w .j  a  va2  s  .  co  m
            u.link(head);
        }
    } catch (IOException e) {
        repLog.error(String.format("Error creating local repository %s:\n", uri.getPath()), e);
    }
}

From source file:com.googlesource.gerrit.plugins.replication.ReplicationQueue.java

License:Apache License

private static void updateHeadLocally(URIish uri, String newHead) {
    try (Repository repo = new FileRepository(uri.getPath())) {
        if (newHead != null) {
            RefUpdate u = repo.updateRef(Constants.HEAD);
            u.link(newHead);//from w w w . ja v  a2 s.co m
        }
    } catch (IOException e) {
        repLog.error(String.format("Failed to update HEAD of repository %s to %s", uri.getPath(), newHead), e);
    }
}

From source file:com.googlesource.gerrit.plugins.testplugin.OvirtPatchSetListener.java

License:Apache License

private Set<String> getAddedDbscripts(Project.NameKey projectName, RevTree targetRevTree) {
    try (Repository repository = repoFromProjectKey(projectName, manager).get();
            ObjectReader reader = repository.newObjectReader();
            RevWalk revWalk = new RevWalk(repository)) {

        CanonicalTreeParser oldTreeIter = new CanonicalTreeParser();
        oldTreeIter.reset(reader,/*ww  w .  j av  a  2 s .  c  om*/
                revWalk.parseCommit(repository.resolve(Constants.HEAD).toObjectId()).getTree());
        CanonicalTreeParser newTreeIter = new CanonicalTreeParser();
        newTreeIter.reset(reader, targetRevTree);

        // finally get the list of changed files
        try (Git git = new Git(repository)) {
            List<DiffEntry> diffs = git.diff().setNewTree(newTreeIter).setOldTree(oldTreeIter).call();
            return diffs.stream().filter(entry -> entry.getChangeType() == DiffEntry.ChangeType.ADD)
                    .filter(entry -> entry.getNewPath().startsWith(FOLDER_PREFIX))
                    .map(entry -> Paths.get(entry.getNewPath()).getFileName().toString())
                    .collect(Collectors.toSet());
        }
    } catch (IOException | GitAPIException e) {
        throw new RuntimeException(e);
    }
}

From source file:com.googlesource.gerrit.plugins.testplugin.OvirtPatchSetListener.java

License:Apache License

private Set<String> getExistingDbscripts(Project.NameKey projectName) {
    return filesOfCommit(repoFromProjectKey(projectName, manager),
            getRepositoryRevCommitFunction(Constants.HEAD));
}

From source file:com.googlesource.gerrit.plugins.xdocs.formatter.ImageFormatter.java

License:Apache License

private String getUrl(String projectName, String path, String revision) {
    StringBuilder url = new StringBuilder();
    url.append("/plugins/");
    url.append(pluginName);/*  w ww  . ja  va 2 s.  co m*/
    url.append(XDocServlet.PATH_PREFIX);
    url.append(Url.encode(projectName));
    if (revision != null && !Constants.HEAD.equals(revision)) {
        url.append("/rev/");
        url.append(Url.encode(revision));
    }
    url.append("/");
    url.append(path);
    return url.toString();
}

From source file:com.googlesource.gerrit.plugins.xdocs.XDocProjectConfig.java

License:Apache License

String getIndexRef() {
    return MoreObjects.firstNonNull(cfg.getString(SECTION_WEB, null, KEY_INDEX_REF), Constants.HEAD);
}

From source file:com.googlesource.gerrit.plugins.xdocs.XDocServlet.java

License:Apache License

@Override
public void service(HttpServletRequest req, HttpServletResponse res) throws IOException {
    try {//www . j  ava 2s . c o m
        validateRequestMethod(req);

        ResourceKey key = ResourceKey.fromPath(getEncodedPath(req));
        ProjectState state = getProject(key);
        XDocProjectConfig cfg = cfgFactory.create(state);

        if (key.file == null) {
            res.sendRedirect(getRedirectUrl(req, key, cfg));
            return;
        }

        MimeType mimeType = fileTypeRegistry.getMimeType(key.file, null);
        mimeType = new MimeType(
                FileContentUtil.resolveContentType(state, key.file, FileMode.FILE, mimeType.toString()));
        FormatterProvider formatter = getFormatter(req, key, mimeType);
        validateDiffMode(key);

        ProjectControl projectControl = projectControlFactory.validateFor(key.project);
        String rev = getRevision(
                key.diffMode == DiffMode.NO_DIFF ? MoreObjects.firstNonNull(key.revision, cfg.getIndexRef())
                        : key.revision,
                projectControl);
        String revB = getRevision(key.revisionB, projectControl);

        try (Repository repo = repoManager.openRepository(key.project)) {
            ObjectId revId = resolveRevision(repo,
                    key.diffMode == DiffMode.NO_DIFF ? MoreObjects.firstNonNull(rev, Constants.HEAD) : rev);
            if (revId != null && ObjectId.isId(rev)) {
                validateCanReadCommit(repo, projectControl, revId);
            }

            ObjectId revIdB = resolveRevision(repo, revB);
            if (revIdB != null && ObjectId.isId(revB)) {
                validateCanReadCommit(repo, projectControl, revIdB);
            }

            if (isResourceNotModified(req, key, revId, revIdB)) {
                res.sendError(SC_NOT_MODIFIED);
                return;
            }

            Resource rsc;
            if (formatter != null) {
                rsc = docCache.get(formatter, key.project, key.file, revId, revIdB, key.diffMode);
            } else if (isImage(mimeType)) {
                rsc = getImageResource(repo, key.diffMode, revId, revIdB, key.file);
            } else {
                rsc = Resource.NOT_FOUND;
            }

            if (rsc != Resource.NOT_FOUND) {
                res.setHeader(HttpHeaders.ETAG,
                        computeETag(key.project, revId, key.file, revIdB, key.diffMode));
            }
            if (key.diffMode == DiffMode.NO_DIFF && rev == null) {
                // file was loaded from HEAD, since HEAD is modifiable the document
                // should only be cached for a short period
                CacheHeaders.setCacheablePrivate(res, 15, TimeUnit.MINUTES, false);
            } else {
                CacheHeaders.setCacheablePrivate(res, 7, TimeUnit.DAYS, false);
            }
            rsc.send(req, res);
            return;
        }
    } catch (RepositoryNotFoundException | NoSuchProjectException | ResourceNotFoundException | AuthException
            | RevisionSyntaxException e) {
        Resource.NOT_FOUND.send(req, res);
    } catch (MethodNotAllowedException e) {
        CacheHeaders.setNotCacheable(res);
        res.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
    }
}

From source file:com.googlesource.gerrit.plugins.xdocs.XDocServlet.java

License:Apache License

private String getRevision(String revision, ProjectControl projectControl)
        throws ResourceNotFoundException, AuthException, IOException {
    if (revision == null) {
        return null;
    }/*from  w  ww . j  a v  a 2s  .com*/

    if (ObjectId.isId(revision)) {
        return revision;
    }

    if (Constants.HEAD.equals(revision)) {
        return getHead.get().apply(new ProjectResource(projectControl));
    } else {
        String rev = revision;
        if (!rev.startsWith(Constants.R_REFS)) {
            rev = Constants.R_HEADS + rev;
        }
        if (!projectControl.controlForRef(rev).isVisible()) {
            throw new ResourceNotFoundException();
        }
        return rev;
    }
}

From source file:com.googlesource.gerrit.plugins.xdocs.XDocWebLink.java

License:Apache License

@Override
public WebLinkInfo getProjectWeblink(String projectName) {
    String url = getBranchUrl(projectName, Constants.HEAD);
    return url == null ? null : new WebLinkInfo(README, getImageUrl(), url, Target.SELF);
}

From source file:com.googlesource.gerrit.plugins.xdocs.XDocWebLink.java

License:Apache License

public String getFileUrl(String projectName, String revision, String fileName, boolean framed) {
    FormatterProvider formatter = formatters.get(projectName, fileName);
    if (formatter == null) {
        return null;
    }/*from w w w  .  j a v  a  2s  .c om*/

    Project.NameKey p = new Project.NameKey(projectName);
    try (Repository repo = repoManager.openRepository(p)) {
        ObjectId revId = repo.resolve(revision);
        if (revId == null) {
            return null;
        }
        Resource rsc = docCache.get(formatter, p, fileName, revId, null, null);
        if (rsc != Resource.NOT_FOUND) {
            StringBuilder url = new StringBuilder();
            if (framed) {
                url.append("#/x/");
            } else {
                url.append("plugins/");
            }
            url.append(pluginName);
            url.append(XDocServlet.PATH_PREFIX);
            url.append(Url.encode(projectName));
            if (revision != null && !Constants.HEAD.equals(revision)) {
                url.append("/rev/");
                url.append(Url.encode(revision));
            }
            url.append("/");
            url.append(fileName);
            return url.toString();
        } else {
            return null;
        }
    } catch (IOException e) {
        log.error("Failed to check for project documentation", e);
        return null;
    }
}