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 | |
parent | 01c6ad29bd1b647d4fd1acea54e374c740ec3c10 (diff) | |
download | git-0fe51391a80919870f94ddb442df234bb2223f3b.tar.gz git-0fe51391a80919870f94ddb442df234bb2223f3b.tar.xz |
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>
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | Documentation/git-export.txt | 31 | ||||
-rw-r--r-- | Documentation/git.txt | 3 | ||||
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | export.c | 81 |
5 files changed, 1 insertions, 117 deletions
diff --git a/.gitignore b/.gitignore index 0fd59b9ff..007b540f4 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 2666a1eb0..000000000 --- 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 <torvalds@osdl.org> - -Documentation --------------- -Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>. - -GIT ---- -Part of the gitlink:git[7] suite - diff --git a/Documentation/git.txt b/Documentation/git.txt index 228f2fc3d..e9158895b 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. @@ -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 ce10b5a29..000000000 --- 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; -} |