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;
}
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;
}
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()));
}
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));
}
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;
}
}
Aggregations