[CLI] Add option --millis / -m to debug-show-dir-cache command

This is useful when comparing mtime displayed by 
    $ jgit debug-show-dir-cache -m
with mtime displayed by 
    $ git ls-files --debug 
or 
    $ stat "%m"

Change-Id: Id133ebe6f6093a56a6a6645e1c5bb18752fb2fd0
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
This commit is contained in:
Matthias Sohn 2013-12-20 13:35:59 +01:00
parent 80be72d2c1
commit 2a50e7065c
2 changed files with 13 additions and 3 deletions

View File

@ -317,6 +317,7 @@ usage_showRefNamesMatchingCommits=Show ref names matching commits
usage_showPatch=display patch
usage_showRefNamesMatchingCommits=Show ref names matching commits
usage_showNotes=Add this ref to the list of note branches from which notes are displayed
usage_showTimeInMilliseconds=Show mtime in milliseconds
usage_squash=Squash commits as if a real merge happened, but do not make a commit or move the HEAD.
usage_srcPrefix=show the source prefix instead of "a/"
usage_symbolicVersionForTheProject=Symbolic version for the project

View File

@ -56,26 +56,35 @@
import org.eclipse.jgit.lib.FileMode;
import org.eclipse.jgit.pgm.Command;
import org.eclipse.jgit.pgm.TextBuiltin;
import org.kohsuke.args4j.Option;
@Command(usage = "usage_ShowDirCache")
class ShowDirCache extends TextBuiltin {
@Option(name = "--millis", aliases = { "-m" }, usage = "usage_showTimeInMilliseconds")
private boolean millis = false;
@Override
protected void run() throws Exception {
final SimpleDateFormat fmt;
fmt = new SimpleDateFormat("yyyy-MM-dd,HH:mm:ss.SSS");
fmt = new SimpleDateFormat("yyyy-MM-dd,HH:mm:ss.SSS"); //$NON-NLS-1$
final DirCache cache = db.readDirCache();
for (int i = 0; i < cache.getEntryCount(); i++) {
final DirCacheEntry ent = cache.getEntry(i);
final FileMode mode = FileMode.fromBits(ent.getRawMode());
final int len = ent.getLength();
final Date mtime = new Date(ent.getLastModified());
long lastModified = ent.getLastModified();
final Date mtime = new Date(lastModified);
final int stage = ent.getStage();
outw.print(mode);
outw.format(" %6d", valueOf(len)); //$NON-NLS-1$
outw.print(' ');
outw.print(fmt.format(mtime));
if (millis)
outw.print(lastModified);
else
outw.print(fmt.format(mtime));
outw.print(' ');
outw.print(ent.getObjectId().name());
outw.print(' ');