| /* |
| * Copyright (C) 2012, Tomasz Zarna <tomasz.zarna@tasktop.com> and others |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Distribution License v. 1.0 which is available at |
| * https://www.eclipse.org/org/documents/edl-v10.php. |
| * |
| * SPDX-License-Identifier: BSD-3-Clause |
| */ |
| package org.eclipse.jgit.pgm; |
| |
| import static org.eclipse.jgit.lib.Constants.OBJECT_ID_ABBREV_STRING_LENGTH; |
| |
| import java.io.IOException; |
| import java.util.Collection; |
| |
| import org.eclipse.jgit.api.Git; |
| import org.eclipse.jgit.api.ReflogCommand; |
| import org.eclipse.jgit.api.errors.GitAPIException; |
| import org.eclipse.jgit.lib.Constants; |
| import org.eclipse.jgit.lib.ReflogEntry; |
| import org.eclipse.jgit.lib.Repository; |
| import org.kohsuke.args4j.Argument; |
| |
| @Command(common = true, usage = "usage_manageReflogInformation") |
| class Reflog extends TextBuiltin { |
| |
| @Argument(metaVar = "metaVar_ref") |
| private String ref; |
| |
| @Override |
| protected void run() { |
| try (Git git = new Git(db)) { |
| ReflogCommand cmd = git.reflog(); |
| if (ref != null) |
| cmd.setRef(ref); |
| Collection<ReflogEntry> entries = cmd.call(); |
| int i = 0; |
| for (ReflogEntry entry : entries) { |
| outw.println(toString(entry, i++)); |
| } |
| } catch (GitAPIException | IOException e) { |
| throw die(e.getMessage(), e); |
| } |
| } |
| |
| private String toString(ReflogEntry entry, int i) { |
| final StringBuilder s = new StringBuilder(); |
| s.append(entry.getNewId().abbreviate(OBJECT_ID_ABBREV_STRING_LENGTH) |
| .name()); |
| s.append(" "); //$NON-NLS-1$ |
| s.append(ref == null ? Constants.HEAD : Repository.shortenRefName(ref)); |
| s.append("@{" + i + "}:"); //$NON-NLS-1$ //$NON-NLS-2$ |
| s.append(" "); //$NON-NLS-1$ |
| s.append(entry.getComment()); |
| return s.toString(); |
| } |
| } |