Skip to content

Commit

Permalink
blame: Add --time to produce raw timestamps
Browse files Browse the repository at this point in the history
fix the usage string and clean up the docs while we are at it

Signed-off-by: Fredrik Kuivinen <freku045@student.liu.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>
  • Loading branch information
Fredrik Kuivinen authored and Junio C Hamano committed Jun 17, 2006
1 parent d849850 commit b19ee24
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 5 deletions.
5 changes: 4 additions & 1 deletion Documentation/git-blame.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,10 @@ OPTIONS
Use the same output mode as git-annotate (Default: off).

-l, --long::
Show long rev (Defaults off).
Show long rev (Default: off).

-t, --time::
Show raw timestamp (Default: off).

-S, --rev-file <revs-file>::
Use revs from revs-file instead of calling git-rev-list.
Expand Down
24 changes: 20 additions & 4 deletions blame.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,11 @@

#define DEBUG 0

static const char blame_usage[] = "[-c] [-l] [--] file [commit]\n"
static const char blame_usage[] = "[-c] [-l] [-t] [-S <revs-file>] [--] file [commit]\n"
" -c, --compability Use the same output mode as git-annotate (Default: off)\n"
" -l, --long Show long commit SHA1 (Default: off)\n"
" -t, --time Show raw timestamp (Default: off)\n"
" -S, --revs-file Use revisions from revs-file instead of calling git-rev-list\n"
" -h, --help This message";

static struct commit **blame_lines;
Expand Down Expand Up @@ -680,13 +682,19 @@ static void get_commit_info(struct commit* commit, struct commit_info* ret)
*tmp = 0;
}

static const char* format_time(unsigned long time, const char* tz_str)
static const char* format_time(unsigned long time, const char* tz_str,
int show_raw_time)
{
static char time_buf[128];
time_t t = time;
int minutes, tz;
struct tm *tm;

if (show_raw_time) {
sprintf(time_buf, "%lu %s", time, tz_str);
return time_buf;
}

tz = atoi(tz_str);
minutes = tz < 0 ? -tz : tz;
minutes = (minutes / 100)*60 + (minutes % 100);
Expand Down Expand Up @@ -740,6 +748,7 @@ int main(int argc, const char **argv)
char filename_buf[256];
int sha1_len = 8;
int compability = 0;
int show_raw_time = 0;
int options = 1;
struct commit* start_commit;

Expand Down Expand Up @@ -768,6 +777,10 @@ int main(int argc, const char **argv)
!strcmp(argv[i], "--compability")) {
compability = 1;
continue;
} else if(!strcmp(argv[i], "-t") ||
!strcmp(argv[i], "--time")) {
show_raw_time = 1;
continue;
} else if(!strcmp(argv[i], "-S")) {
if (i + 1 < argc &&
!read_ancestry(argv[i + 1], &sha1_p)) {
Expand Down Expand Up @@ -873,14 +886,17 @@ int main(int argc, const char **argv)
fwrite(sha1_to_hex(c->object.sha1), sha1_len, 1, stdout);
if(compability) {
printf("\t(%10s\t%10s\t%d)", ci.author,
format_time(ci.author_time, ci.author_tz), i+1);
format_time(ci.author_time, ci.author_tz,
show_raw_time),
i+1);
} else {
if (found_rename)
printf(" %-*.*s", longest_file, longest_file,
u->pathname);
printf(" (%-*.*s %10s %*d) ",
longest_author, longest_author, ci.author,
format_time(ci.author_time, ci.author_tz),
format_time(ci.author_time, ci.author_tz,
show_raw_time),
max_digits, i+1);
}

Expand Down

0 comments on commit b19ee24

Please sign in to comment.