Search in sources :

Example 16 with Ref

use of org.eclipse.jgit.lib.Ref in project gitblit by gitblit.

the class TicketPage method getTicket.

/**
	 * Returns the ticket (if any) that this commit references.
	 *
	 * @param commit
	 * @return null or a ticket
	 */
protected TicketModel getTicket(RevCommit commit) {
    try {
        Map<String, Ref> refs = getRepository().getRefDatabase().getRefs(Constants.R_TICKETS_PATCHSETS);
        for (Map.Entry<String, Ref> entry : refs.entrySet()) {
            if (entry.getValue().getObjectId().equals(commit.getId())) {
                long id = PatchsetCommand.getTicketNumber(entry.getKey());
                TicketModel ticket = app().tickets().getTicket(getRepositoryModel(), id);
                return ticket;
            }
        }
    } catch (Exception e) {
        logger().error("failed to determine ticket from ref", e);
    }
    return null;
}
Also used : Ref(org.eclipse.jgit.lib.Ref) TicketModel(com.gitblit.models.TicketModel) Map(java.util.Map) RestartResponseException(org.apache.wicket.RestartResponseException) IOException(java.io.IOException)

Example 17 with Ref

use of org.eclipse.jgit.lib.Ref in project gitblit by gitblit.

the class BranchesPanel method createDeleteBranchLink.

private Link<Void> createDeleteBranchLink(final RepositoryModel repositoryModel, final RefModel entry) {
    Link<Void> deleteLink = new Link<Void>("deleteBranch") {

        private static final long serialVersionUID = 1L;

        @Override
        public void onClick() {
            Repository r = app().repositories().getRepository(repositoryModel.name);
            if (r == null) {
                if (app().repositories().isCollectingGarbage(repositoryModel.name)) {
                    error(MessageFormat.format(getString("gb.busyCollectingGarbage"), repositoryModel.name));
                } else {
                    error(MessageFormat.format("Failed to find repository {0}", repositoryModel.name));
                }
                return;
            }
            final String branch = entry.getName();
            Ref ref = null;
            try {
                ref = r.getRef(branch);
                if (ref == null && !branch.startsWith(Constants.R_HEADS)) {
                    ref = r.getRef(Constants.R_HEADS + branch);
                }
            } catch (IOException e) {
            }
            if (ref != null) {
                boolean success = JGitUtils.deleteBranchRef(r, ref.getName());
                if (success) {
                    // clear commit cache
                    CommitCache.instance().clear(repositoryModel.name, branch);
                    // optionally update reflog
                    if (RefLogUtils.hasRefLogBranch(r)) {
                        UserModel user = GitBlitWebSession.get().getUser();
                        RefLogUtils.deleteRef(user, r, ref);
                    }
                }
                if (success) {
                    info(MessageFormat.format("Branch \"{0}\" deleted", branch));
                } else {
                    error(MessageFormat.format("Failed to delete branch \"{0}\"", branch));
                }
            }
            r.close();
            // redirect to the owning page
            PageParameters params = WicketUtils.newRepositoryParameter(repositoryModel.name);
            String relativeUrl = urlFor(getPage().getClass(), params).toString();
            String absoluteUrl = RequestUtils.toAbsolutePath(relativeUrl);
            getRequestCycle().setRequestTarget(new RedirectRequestTarget(absoluteUrl));
        }
    };
    deleteLink.add(new JavascriptEventConfirmation("onclick", MessageFormat.format("Delete branch \"{0}\"?", entry.displayName)));
    return deleteLink;
}
Also used : UserModel(com.gitblit.models.UserModel) Repository(org.eclipse.jgit.lib.Repository) Ref(org.eclipse.jgit.lib.Ref) RedirectRequestTarget(org.apache.wicket.request.target.basic.RedirectRequestTarget) IOException(java.io.IOException) PageParameters(org.apache.wicket.PageParameters) ExternalLink(org.apache.wicket.markup.html.link.ExternalLink) Link(org.apache.wicket.markup.html.link.Link) BookmarkablePageLink(org.apache.wicket.markup.html.link.BookmarkablePageLink)

Example 18 with Ref

use of org.eclipse.jgit.lib.Ref in project gocd by gocd.

the class ConfigRepositoryTest method shouldCreateBranchForARevCommit.

@Test
public void shouldCreateBranchForARevCommit() throws Exception {
    configRepo.checkin(goConfigRevision("something", "md5-1"));
    RevCommit revCommit = configRepo.getCurrentRevCommit();
    configRepo.createBranch("branch1", revCommit);
    Ref branch = getBranch("branch1");
    assertThat(branch, is(notNullValue()));
    assertThat(branch.getObjectId(), is(revCommit.getId()));
}
Also used : Ref(org.eclipse.jgit.lib.Ref) RevCommit(org.eclipse.jgit.revwalk.RevCommit) Test(org.junit.Test)

Example 19 with Ref

use of org.eclipse.jgit.lib.Ref in project gocd by gocd.

the class ConfigRepositoryTest method shouldBeOnMasterAndTemporaryBranchesDeletedAfterGettingMergeConfig.

@Test
public void shouldBeOnMasterAndTemporaryBranchesDeletedAfterGettingMergeConfig() throws Exception {
    String original = "first\nsecond\n";
    String nextUpdate = "1st\nsecond\n";
    String latestUpdate = "first\nsecond\nthird\n";
    configRepo.checkin(goConfigRevision(original, "md5-1"));
    configRepo.checkin(goConfigRevision(nextUpdate, "md5-2"));
    RevCommit currentRevCommitOnMaster = configRepo.getCurrentRevCommit();
    String mergedConfig = configRepo.getConfigMergedWithLatestRevision(goConfigRevision(latestUpdate, "md5-3"), "md5-1");
    assertThat(mergedConfig, is("1st\nsecond\nthird\n"));
    List<Ref> branches = getAllBranches();
    assertThat(branches.size(), is(1));
    assertThat(branches.get(0).getName().endsWith("master"), is(true));
    assertThat(configRepo.getCurrentRevCommit(), is(currentRevCommitOnMaster));
}
Also used : Ref(org.eclipse.jgit.lib.Ref) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) RevCommit(org.eclipse.jgit.revwalk.RevCommit) Test(org.junit.Test)

Example 20 with Ref

use of org.eclipse.jgit.lib.Ref in project gerrit by GerritCodeReview.

the class CreateChangeIT method createNewCommitWithoutChangeId.

private RevCommit createNewCommitWithoutChangeId() throws Exception {
    try (Repository repo = repoManager.openRepository(project);
        RevWalk walk = new RevWalk(repo)) {
        Ref ref = repo.exactRef("refs/heads/master");
        RevCommit tip = null;
        if (ref != null) {
            tip = walk.parseCommit(ref.getObjectId());
        }
        TestRepository<?> testSrcRepo = new TestRepository<>(repo);
        TestRepository<?>.BranchBuilder<?> builder = testSrcRepo.branch("refs/heads/master");
        RevCommit revCommit = tip == null ? builder.commit().message("commit 1").add("a.txt", "content").create() : builder.commit().parent(tip).message("commit 1").add("a.txt", "content").create();
        assertThat(GitUtil.getChangeId(testSrcRepo, revCommit)).isEmpty();
        return revCommit;
    }
}
Also used : TestRepository(org.eclipse.jgit.junit.TestRepository) Repository(org.eclipse.jgit.lib.Repository) RefNames.changeMetaRef(com.google.gerrit.reviewdb.client.RefNames.changeMetaRef) Ref(org.eclipse.jgit.lib.Ref) TestRepository(org.eclipse.jgit.junit.TestRepository) RevWalk(org.eclipse.jgit.revwalk.RevWalk) RevCommit(org.eclipse.jgit.revwalk.RevCommit)

Aggregations

Ref (org.eclipse.jgit.lib.Ref)137 IOException (java.io.IOException)55 RevCommit (org.eclipse.jgit.revwalk.RevCommit)45 ObjectId (org.eclipse.jgit.lib.ObjectId)38 RevWalk (org.eclipse.jgit.revwalk.RevWalk)37 Repository (org.eclipse.jgit.lib.Repository)35 Change (com.google.gerrit.reviewdb.client.Change)22 Test (org.junit.Test)20 ArrayList (java.util.ArrayList)18 Git (org.eclipse.jgit.api.Git)18 File (java.io.File)16 PatchSet (com.google.gerrit.reviewdb.client.PatchSet)12 OrmException (com.google.gwtorm.server.OrmException)12 Map (java.util.Map)12 PersonIdent (org.eclipse.jgit.lib.PersonIdent)12 Status (org.eclipse.jgit.api.Status)11 GitAPIException (org.eclipse.jgit.api.errors.GitAPIException)11 HashMap (java.util.HashMap)10 Account (com.google.gerrit.reviewdb.client.Account)9 Branch (com.google.gerrit.reviewdb.client.Branch)9