Browse Source

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

Change-Id: I30f1049fce086f2cf7e39ba3ad8b335df3a7b827
tags/v1.2.0.201112221803-r
Robin Rosenberg 12 years ago
parent
commit
6baf0cb956

+ 1
- 0
org.eclipse.jgit.pgm/resources/org/eclipse/jgit/pgm/CLIText.properties 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

+ 14
- 12
org.eclipse.jgit.pgm/src/org/eclipse/jgit/pgm/Log.java View File

@@ -47,18 +47,14 @@ package org.eclipse.jgit.pgm;

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.lib.Ref;
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 @@ class Log extends RevWalkTextBuiltin {
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 @@ class Log extends RevWalkTextBuiltin {


Log() {
fmt = new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy ZZZZZ", Locale.US);
dateFormatter = new GitDateFormatter(Format.DEFAULT);
}

@Override
@@ -246,10 +250,8 @@ class Log extends RevWalkTextBuiltin {

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");

Loading…
Cancel
Save