Make use of the many date formatting options in the log command

Change-Id: I30f1049fce086f2cf7e39ba3ad8b335df3a7b827
This commit is contained in:
Robin Rosenberg 2011-10-09 22:01:39 +02:00
parent f4460dda97
commit 6baf0cb956
2 changed files with 15 additions and 12 deletions

View File

@ -183,6 +183,7 @@ usage_configureTheServiceInDaemonServicename=configure the service in daemon.ser
usage_createBranchAndCheckout=create branch and checkout
usage_deleteBranchEvenIfNotMerged=delete branch (even if not merged)
usage_deleteFullyMergedBranch=delete fully merged branch
usage_date=date format, one of default, rfc, local, iso, short, raw (as defined by git-log(1) ), locale or localelocal (jgit extensions)
usage_detectRenames=detect renamed files
usage_diffAlgorithm=the diff algorithm to use. Currently supported are: 'myers', 'histogram'
usage_directoriesToExport=directories to export

View File

@ -47,18 +47,14 @@
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.text.DateFormat;
import java.text.MessageFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.TimeZone;
import org.eclipse.jgit.diff.DiffFormatter;
import org.eclipse.jgit.diff.RawText;
@ -73,14 +69,15 @@
import org.eclipse.jgit.notes.NoteMap;
import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.revwalk.RevTree;
import org.eclipse.jgit.util.SystemReader;
import org.eclipse.jgit.util.GitDateFormatter;
import org.eclipse.jgit.util.GitDateFormatter.Format;
import org.kohsuke.args4j.Option;
@Command(common = true, usage = "usage_viewCommitHistory")
class Log extends RevWalkTextBuiltin {
private final TimeZone myTZ = SystemReader.getInstance().getTimeZone();
private final DateFormat fmt;
private GitDateFormatter dateFormatter = new GitDateFormatter(
Format.DEFAULT);
private final DiffFormatter diffFmt = new DiffFormatter( //
new BufferedOutputStream(System.out));
@ -102,6 +99,13 @@ void addAdditionalNoteRef(String notesRef) {
additionalNoteRefs.add(notesRef);
}
@Option(name = "--date", usage = "usage_date")
void dateFormat(String date) {
if (date.toLowerCase().equals(date))
date = date.toUpperCase();
dateFormatter = new GitDateFormatter(Format.valueOf(date));
}
// BEGIN -- Options shared with Diff
@Option(name = "-p", usage = "usage_showPatch")
boolean showPatch;
@ -175,7 +179,7 @@ void noPrefix(@SuppressWarnings("unused") boolean on) {
Log() {
fmt = new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy ZZZZZ", Locale.US);
dateFormatter = new GitDateFormatter(Format.DEFAULT);
}
@Override
@ -246,10 +250,8 @@ protected void show(final RevCommit c) throws Exception {
final PersonIdent author = c.getAuthorIdent();
out.println(MessageFormat.format(CLIText.get().authorInfo, author.getName(), author.getEmailAddress()));
final TimeZone authorTZ = author.getTimeZone();
fmt.setTimeZone(authorTZ != null ? authorTZ : myTZ);
out.println(MessageFormat.format(CLIText.get().dateInfo, fmt.format(author.getWhen())));
out.println(MessageFormat.format(CLIText.get().dateInfo,
dateFormatter.formatDate(author)));
out.println();
final String[] lines = c.getFullMessage().split("\n");