From 0fe51391a80919870f94ddb442df234bb2223f3b Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 16 Sep 2005 22:21:36 -0700 Subject: [PATCH] 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 --- .gitignore | 1 - Documentation/git-export.txt | 31 ----------------- Documentation/git.txt | 3 -- Makefile | 2 +- export.c | 81 -------------------------------------------- 5 files changed, 1 insertion(+), 117 deletions(-) delete mode 100644 Documentation/git-export.txt delete mode 100644 export.c diff --git a/.gitignore b/.gitignore index 0fd59b9f..007b540f 100644 --- a/.gitignore +++ b/.gitignore @@ -24,7 +24,6 @@ git-diff-helper git-diff-index git-diff-stages git-diff-tree -git-export git-fetch git-fetch-pack git-format-patch diff --git a/Documentation/git-export.txt b/Documentation/git-export.txt deleted file mode 100644 index 2666a1eb..00000000 --- a/Documentation/git-export.txt +++ /dev/null @@ -1,31 +0,0 @@ -git-export(1) -============= -v0.1, May 2005 - -NAME ----- -git-export - Exports each commit and a diff against each of its parents - - -SYNOPSIS --------- -'git-export' top [base] - -DESCRIPTION ------------ -Exports each commit and diff against each of its parents, between -top and base. If base is not specified it exports everything. - - -Author ------- -Written by Linus Torvalds - -Documentation --------------- -Documentation by David Greaves, Junio C Hamano and the git-list . - -GIT ---- -Part of the gitlink:git[7] suite - diff --git a/Documentation/git.txt b/Documentation/git.txt index 228f2fc3..e9158895 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -118,9 +118,6 @@ gitlink:git-diff-stages[1]:: gitlink:git-diff-tree[1]:: Compares the content and mode of blobs found via two tree objects -gitlink:git-export[1]:: - Exports each commit and a diff against each of its parents - gitlink:git-fsck-objects[1]:: Verifies the connectivity and validity of the objects in the database Previously this command was known as git-fsck-cache. diff --git a/Makefile b/Makefile index 6d73a4d2..7559e145 100644 --- a/Makefile +++ b/Makefile @@ -103,7 +103,7 @@ PROGRAMS = \ git-checkout-index git-clone-pack git-commit-tree \ git-convert-objects git-diff-files \ git-diff-helper git-diff-index git-diff-stages \ - git-diff-tree git-export git-fetch-pack git-fsck-objects \ + git-diff-tree git-fetch-pack git-fsck-objects \ git-hash-object git-init-db \ git-local-fetch git-ls-files git-ls-tree git-merge-base \ git-merge-index git-mktag git-pack-objects git-patch-id \ diff --git a/export.c b/export.c deleted file mode 100644 index ce10b5a2..00000000 --- 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; -} -- 2.11.0