diff options
author | Junio C Hamano <junkio@cox.net> | 2005-09-16 22:21:36 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2005-09-22 01:54:12 -0700 |
commit | 0fe51391a80919870f94ddb442df234bb2223f3b (patch) | |
tree | 49c368565ba0c9676070aa603a929e27c36da0e7 /export.c | |
parent | 01c6ad29bd1b647d4fd1acea54e374c740ec3c10 (diff) | |
download | git-0fe51391a80919870f94ddb442df234bb2223f3b.tar.gz |
Retire git-export.
git-export was done as a concept example on how easy it is to export
the git data to something else. It's much less powerful than any
number of trivial one-liner scripts now, and real exporters would not
ever use git-export.
It's obviously much less powerful than "git-whatchanged", or just
about any combination of git-rev-list + git-diff-tree.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'export.c')
-rw-r--r-- | export.c | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/export.c b/export.c deleted file mode 100644 index ce10b5a298..0000000000 --- a/export.c +++ /dev/null @@ -1,81 +0,0 @@ -#include "cache.h" -#include "commit.h" - -/* - * Show one commit - */ -static void show_commit(struct commit *commit) -{ - char cmdline[400]; - char hex[100]; - - strcpy(hex, sha1_to_hex(commit->object.sha1)); - printf("Id: %s\n", hex); - fflush(NULL); - sprintf(cmdline, "git-cat-file commit %s", hex); - system(cmdline); - if (commit->parents) { - char *against = sha1_to_hex(commit->parents->item->object.sha1); - printf("\n\n======== diff against %s ========\n", against); - fflush(NULL); - sprintf(cmdline, "git-diff-tree -p %s %s", against, hex); - system(cmdline); - } - printf("======== end ========\n\n"); -} - -/* - * Show all unseen commits, depth-first - */ -static void show_unseen(struct commit *top) -{ - struct commit_list *parents; - - if (top->object.flags & 2) - return; - top->object.flags |= 2; - parents = top->parents; - while (parents) { - show_unseen(parents->item); - parents = parents->next; - } - show_commit(top); -} - -static void export(struct commit *top, struct commit *base) -{ - mark_reachable(&top->object, 1); - if (base) - mark_reachable(&base->object, 2); - show_unseen(top); -} - -static struct commit *get_commit(unsigned char *sha1) -{ - struct commit *commit = lookup_commit(sha1); - if (!commit->object.parsed) { - struct commit_list *parents; - - if (parse_commit(commit) < 0) - die("unable to parse commit %s", sha1_to_hex(sha1)); - parents = commit->parents; - while (parents) { - get_commit(parents->item->object.sha1); - parents = parents->next; - } - } - return commit; -} - -int main(int argc, char **argv) -{ - unsigned char base_sha1[20]; - unsigned char top_sha1[20]; - - if (argc < 2 || argc > 4 || - get_sha1(argv[1], top_sha1) || - (argc == 3 && get_sha1(argv[2], base_sha1))) - usage("git-export top [base]"); - export(get_commit(top_sha1), argc==3 ? get_commit(base_sha1) : NULL); - return 0; -} |