Tie it all together: "git log"
This is what the previous diffs all built up to. We can do "git log" as a trivial small helper function inside git.c, because the infrastructure is all there for us to use as a library. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
f67b45f862
commit
70b006b971
2
Makefile
2
Makefile
@ -450,7 +450,7 @@ strip: $(PROGRAMS) git$X
|
||||
|
||||
git$X: git.c $(LIB_FILE)
|
||||
$(CC) -DGIT_VERSION='"$(GIT_VERSION)"' \
|
||||
$(CFLAGS) $(COMPAT_CFLAGS) -o $@ $(filter %.c,$^) $(LIB_FILE)
|
||||
$(ALL_CFLAGS) -o $@ $(filter %.c,$^) $(LIB_FILE) $(LIBS)
|
||||
|
||||
$(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
|
||||
rm -f $@
|
||||
|
24
git.c
24
git.c
@ -12,6 +12,10 @@
|
||||
#include "git-compat-util.h"
|
||||
#include "exec_cmd.h"
|
||||
|
||||
#include "cache.h"
|
||||
#include "commit.h"
|
||||
#include "revision.h"
|
||||
|
||||
#ifndef PATH_MAX
|
||||
# define PATH_MAX 4096
|
||||
#endif
|
||||
@ -245,6 +249,25 @@ static int cmd_help(int argc, char **argv, char **envp)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define LOGSIZE (65536)
|
||||
|
||||
static int cmd_log(int argc, char **argv, char **envp)
|
||||
{
|
||||
struct rev_info rev;
|
||||
struct commit *commit;
|
||||
char *buf = xmalloc(LOGSIZE);
|
||||
|
||||
argc = setup_revisions(argc, argv, &rev, "HEAD");
|
||||
prepare_revision_walk(&rev);
|
||||
setup_pager();
|
||||
while ((commit = get_revision(&rev)) != NULL) {
|
||||
pretty_print_commit(CMIT_FMT_DEFAULT, commit, ~0, buf, LOGSIZE, 18);
|
||||
printf("%s\n", buf);
|
||||
}
|
||||
free(buf);
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
|
||||
|
||||
static void handle_internal_command(int argc, char **argv, char **envp)
|
||||
@ -256,6 +279,7 @@ static void handle_internal_command(int argc, char **argv, char **envp)
|
||||
} commands[] = {
|
||||
{ "version", cmd_version },
|
||||
{ "help", cmd_help },
|
||||
{ "log", cmd_log },
|
||||
};
|
||||
int i;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user