Example usage for org.eclipse.jgit.lib RefUpdate disableRefLog

List of usage examples for org.eclipse.jgit.lib RefUpdate disableRefLog

Introduction

In this page you can find the example usage for org.eclipse.jgit.lib RefUpdate disableRefLog.

Prototype

public void disableRefLog() 

Source Link

Document

Don't record this update in the ref's associated reflog.

Usage

From source file:com.google.gerrit.server.project.CreateProject.java

License:Apache License

public Project createProject(CreateProjectArgs args)
        throws BadRequestException, ResourceConflictException, IOException, ConfigInvalidException {
    final Project.NameKey nameKey = args.getProject();
    try {/*  ww  w  . j  a  v  a 2 s.  c  om*/
        final String head = args.permissionsOnly ? RefNames.REFS_CONFIG : args.branch.get(0);
        try (Repository repo = repoManager.openRepository(nameKey)) {
            if (repo.getObjectDatabase().exists()) {
                throw new ResourceConflictException("project \"" + nameKey + "\" exists");
            }
        } catch (RepositoryNotFoundException e) {
            // It does not exist, safe to ignore.
        }
        try (Repository repo = repoManager.createRepository(nameKey)) {
            RefUpdate u = repo.updateRef(Constants.HEAD);
            u.disableRefLog();
            u.link(head);

            createProjectConfig(args);

            if (!args.permissionsOnly && args.createEmptyCommit) {
                createEmptyCommits(repo, nameKey, args.branch);
            }

            NewProjectCreatedListener.Event event = new NewProjectCreatedListener.Event() {
                @Override
                public String getProjectName() {
                    return nameKey.get();
                }

                @Override
                public String getHeadName() {
                    return head;
                }
            };
            for (NewProjectCreatedListener l : createdListener) {
                try {
                    l.onNewProjectCreated(event);
                } catch (RuntimeException e) {
                    log.warn("Failure in NewProjectCreatedListener", e);
                }
            }

            return projectCache.get(nameKey).getProject();
        }
    } catch (RepositoryCaseMismatchException e) {
        throw new ResourceConflictException(
                "Cannot create " + nameKey.get() + " because the name is already occupied by another project."
                        + " The other project has the same name, only spelled in a" + " different case.");
    } catch (RepositoryNotFoundException badName) {
        throw new BadRequestException("invalid project name: " + nameKey);
    } catch (ConfigInvalidException e) {
        String msg = "Cannot create " + nameKey;
        log.error(msg, e);
        throw e;
    }
}

From source file:com.google.gerrit.server.project.PerformCreateProject.java

License:Apache License

public Project createProject() throws ProjectCreationFailedException {
    validateParameters();/*from  w  w w.jav  a2s .c om*/
    final Project.NameKey nameKey = createProjectArgs.getProject();
    try {
        final String head = createProjectArgs.permissionsOnly ? RefNames.REFS_CONFIG
                : createProjectArgs.branch.get(0);
        final Repository repo = repoManager.createRepository(nameKey);
        try {
            NewProjectCreatedListener.Event event = new NewProjectCreatedListener.Event() {
                @Override
                public String getProjectName() {
                    return nameKey.get();
                }

                @Override
                public String getHeadName() {
                    return head;
                }
            };
            for (NewProjectCreatedListener l : createdListener) {
                try {
                    l.onNewProjectCreated(event);
                } catch (RuntimeException e) {
                    log.warn("Failure in NewProjectCreatedListener", e);
                }
            }

            final RefUpdate u = repo.updateRef(Constants.HEAD);
            u.disableRefLog();
            u.link(head);

            createProjectConfig();

            if (!createProjectArgs.permissionsOnly && createProjectArgs.createEmptyCommit) {
                createEmptyCommits(repo, nameKey, createProjectArgs.branch);
            }

            return projectCache.get(nameKey).getProject();
        } finally {
            repo.close();
        }
    } catch (RepositoryCaseMismatchException e) {
        throw new ProjectCreationFailedException(
                "Cannot create " + nameKey.get() + " because the name is already occupied by another project."
                        + " The other project has the same name, only spelled in a" + " different case.",
                e);
    } catch (RepositoryNotFoundException badName) {
        throw new ProjectCreationFailedException("Cannot create " + nameKey, badName);
    } catch (IllegalStateException err) {
        try {
            final Repository repo = repoManager.openRepository(nameKey);
            try {
                if (repo.getObjectDatabase().exists()) {
                    throw new ProjectCreationFailedException("project \"" + nameKey + "\" exists");
                }
                throw err;
            } finally {
                repo.close();
            }
        } catch (IOException ioErr) {
            final String msg = "Cannot create " + nameKey;
            log.error(msg, err);
            throw new ProjectCreationFailedException(msg, ioErr);
        }
    } catch (Exception e) {
        final String msg = "Cannot create " + nameKey;
        log.error(msg, e);
        throw new ProjectCreationFailedException(msg, e);
    }
}

From source file:com.google.gerrit.server.schema.Schema_56.java

License:Apache License

@Override
protected void migrateData(ReviewDb db, UpdateUI ui) {
    for (Project.NameKey name : mgr.list()) {
        Repository git;/*w w  w.j  a v a2  s .  c  o m*/
        try {
            git = mgr.openRepository(name);
        } catch (RepositoryNotFoundException e) {
            ui.message("warning: Cannot open " + name.get());
            continue;
        }
        try {
            Map<String, Ref> all = git.getAllRefs();
            if (all.keySet().equals(keysOne) || all.keySet().equals(keysTwo)) {
                try {
                    RefUpdate update = git.updateRef(Constants.HEAD);
                    update.disableRefLog();
                    update.link(GitRepositoryManager.REF_CONFIG);
                } catch (IOException err) {
                    ui.message("warning: " + name.get() + ": Cannot update HEAD to "
                            + GitRepositoryManager.REF_CONFIG + ": " + err.getMessage());
                }
            }
        } finally {
            git.close();
        }
    }
}

From source file:com.google.gerrit.sshd.commands.CreateProject.java

License:Apache License

@Override
public void start(final Environment env) {
    startThread(new CommandRunnable() {
        @Override//from w  w w.ja  va  2s  .co  m
        public void run() throws Exception {
            PrintWriter p = toPrintWriter(out);

            parseCommandLine();

            try {
                validateParameters();
                nameKey = new Project.NameKey(projectName);

                final Repository repo = repoManager.createRepository(nameKey);
                try {
                    RefUpdate u = repo.updateRef(Constants.HEAD);
                    u.disableRefLog();
                    u.link(branch);

                    createProject();
                    repoManager.setProjectDescription(nameKey, projectDescription);

                    if (createEmptyCommit) {
                        createEmptyCommit(repo, nameKey, branch);
                    }

                    rq.replicateNewProject(nameKey, branch);
                } finally {
                    repo.close();
                }
            } catch (Exception e) {
                p.print("Error when trying to create project: " + e.getMessage() + "\n");
                p.flush();
            }
        }
    });
}

From source file:com.googlesource.gerrit.plugins.changefabricator.ChangeFabricator.java

License:Apache License

private Change.Id createNewChange(Repository git, RevWalk revWalk, Change.Key changeKey,
        Project.NameKey project, Ref destRef, RevCommit emptyCommit, RefControl refControl)
        throws OrmException, InvalidChangeOperationException, IOException {
    IdentifiedUser me = (IdentifiedUser) userProvider.get();
    Change change = new Change(changeKey, new Change.Id(db.nextChangeId()), me.getAccountId(),
            new Branch.NameKey(project, destRef.getName()), TimeUtil.nowTs());
    ChangeInserter ins = changeInserterFactory.create(refControl, change, emptyCommit);
    PatchSet newPatchSet = ins.getPatchSet();

    CommitValidators commitValidators = commitValidatorsFactory.create(refControl, new NoSshInfo(), git);
    CommitReceivedEvent commitReceivedEvent = new CommitReceivedEvent(
            new ReceiveCommand(ObjectId.zeroId(), emptyCommit.getId(), newPatchSet.getRefName()),
            refControl.getProjectControl().getProject(), refControl.getRefName(), emptyCommit, me);

    try {//from ww w.  j  a  v a  2 s. co m
        commitValidators.validateForGerritCommits(commitReceivedEvent);
    } catch (CommitValidationException e) {
        throw new InvalidChangeOperationException(e.getMessage());
    }

    final RefUpdate ru = git.updateRef(newPatchSet.getRefName());
    ru.setExpectedOldObjectId(ObjectId.zeroId());
    ru.setNewObjectId(emptyCommit);
    ru.disableRefLog();
    if (ru.update(revWalk) != RefUpdate.Result.NEW) {
        throw new IOException(String.format("Failed to create ref %s in %s: %s", newPatchSet.getRefName(),
                change.getDest().getParentKey().get(), ru.getResult()));
    }

    ins.insert();
    return change.getId();
}

From source file:com.googlesource.gerrit.plugins.github.git.PullRequestCreateChange.java

License:Apache License

private Change.Id createNewChange(ReviewDb db, Repository git, RevWalk revWalk, Change.Key changeKey,
        Project.NameKey project, Ref destRef, Account.Id pullRequestOwner, RevCommit pullRequestCommit,
        RefControl refControl, String pullRequestMessage, String topic, boolean doValidation)
        throws OrmException, InvalidChangeOperationException, IOException {
    Change change = new Change(changeKey, new Change.Id(db.nextChangeId()), pullRequestOwner,
            new Branch.NameKey(project, destRef.getName()), TimeUtil.nowTs());
    if (topic != null) {
        change.setTopic(topic);/*from   w  w  w . j a  v  a2s.  c  o  m*/
    }
    ChangeInserter ins = changeInserterFactory.create(refControl, change, pullRequestCommit);
    PatchSet newPatchSet = ins.getPatchSet();

    if (doValidation) {
        validate(git, pullRequestCommit, refControl, newPatchSet);
    }

    final RefUpdate ru = git.updateRef(newPatchSet.getRefName());
    ru.setExpectedOldObjectId(ObjectId.zeroId());
    ru.setNewObjectId(pullRequestCommit);
    ru.disableRefLog();
    if (ru.update(revWalk) != RefUpdate.Result.NEW) {
        throw new IOException(String.format("Failed to create ref %s in %s: %s", newPatchSet.getRefName(),
                change.getDest().getParentKey().get(), ru.getResult()));
    }

    ins.setMessage(buildChangeMessage(db, change, newPatchSet, pullRequestOwner, pullRequestMessage)).insert();

    return change.getId();
}

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();
            u.link(head);/*from w  w w  . j av a 2s. c  om*/
        }
    } catch (IOException e) {
        repLog.error(String.format("Error creating local repository %s:\n", uri.getPath()), e);
    }
}

From source file:com.peergreen.configuration.git.GitRepository.java

License:Apache License

@Override
public void setProductionVersion(Version version) throws RepositoryException {

    // Check version exists
    if (!gitManager.existRef(version.getName())) {
        throw new RepositoryException(
                "Want to set new version to '" + version.getName() + "' but it doesn't exists.");
    }//from w w w .  ja  v a2 s.  c o  m

    // Now, add the symbolic-ref for the current-version
    RefUpdate newHead = null;
    try {
        newHead = gitManager.repository().updateRef(Constants.R_TAGS + "current-version");
    } catch (IOException e) {
        throw new RepositoryException("Unable to set the production version", e);
    }

    newHead.disableRefLog();
    try {
        newHead.link(Constants.R_TAGS + version.getName());
    } catch (IOException e) {
        throw new RepositoryException("Unable to set the production version", e);
    }

}

From source file:net.erdfelt.android.sdkfido.git.internal.GitCloneCommand.java

License:Apache License

private void checkoutRef(Ref ref) throws IOException {
    LOG.info("checkoutRef: ref:" + ref);

    if (ref == null) {
        throw new IllegalArgumentException("Unable to checkout from a null ref");
    }//w w w  .  j  a v a 2s.co  m

    if (!Constants.HEAD.equals(ref.getName())) {
        RefUpdate u = repo.updateRef(Constants.HEAD);
        u.disableRefLog();
        u.link(ref.getName());
    }
    ObjectId commitId = ref.getObjectId();

    RevCommit commit = parseCommit(commitId);
    RefUpdate u = repo.updateRef(Constants.HEAD);
    u.setNewObjectId(commit.getId());
    u.forceUpdate();

    DirCache dc = repo.lockDirCache();
    DirCacheCheckout co = new DirCacheCheckout(repo, dc, commit.getTree());
    co.checkout();
}

From source file:org.commonjava.gitwrap.BareGitRepository.java

License:Open Source License

protected final void doClone(final String remoteUrl, final String remoteName, final String branch)
        throws GitWrapException {
    final FileRepository repository = getRepository();

    final String branchRef = Constants.R_HEADS + (branch == null ? Constants.MASTER : branch);

    try {//  w  w w . j a va  2s  .  com
        final RefUpdate head = repository.updateRef(Constants.HEAD);
        head.disableRefLog();
        head.link(branchRef);

        final RemoteConfig remoteConfig = new RemoteConfig(repository.getConfig(), remoteName);
        remoteConfig.addURI(new URIish(remoteUrl));

        final String remoteRef = Constants.R_REMOTES + remoteName;

        RefSpec spec = new RefSpec();
        spec = spec.setForceUpdate(true);
        spec = spec.setSourceDestination(Constants.R_HEADS + "*", remoteRef + "/*");

        remoteConfig.addFetchRefSpec(spec);

        remoteConfig.update(repository.getConfig());

        repository.getConfig().setString("branch", branch, "remote", remoteName);
        repository.getConfig().setString("branch", branch, "merge", branchRef);

        repository.getConfig().save();

        fetch(remoteName);
        postClone(remoteUrl, branchRef);
    } catch (final IOException e) {
        throw new GitWrapException("Failed to clone from: %s. Reason: %s", e, remoteUrl, e.getMessage());
    } catch (final URISyntaxException e) {
        throw new GitWrapException("Failed to clone from: %s. Reason: %s", e, remoteUrl, e.getMessage());
    }
}