summaryrefslogtreecommitdiff
path: root/git-export.c
diff options
context:
space:
mode:
authorLibravatar Linus Torvalds <torvalds@ppc970.osdl.org>2005-04-29 14:09:11 -0700
committerLibravatar Linus Torvalds <torvalds@ppc970.osdl.org>2005-04-29 14:09:11 -0700
commita3df180138b85a603656582bde6df757095618cf (patch)
tree5a4d7d606c4ff4ec0d62ce18bce3bc81fe737862 /git-export.c
parent[PATCH] GIT: Honour SHA1_FILE_DIRECTORY env var in git-pull-script (diff)
downloadtgif-a3df180138b85a603656582bde6df757095618cf.tar.xz
Rename git core commands to be "git-xxxx" to avoid name clashes.
This also regularizes the make. The source files themselves don't get the "git-" prefix, because that's just inconvenient. So instead we just make the rule that "git-xxxx" depends on "xxxx.c", and do that for all the core programs (ie the old "git-mktag.c" got renamed to just "mktag.c" to match everything else). And "show-diff" got renamed to "git-diff-files" while at it, since that's what it really should be to match the other git-diff-xxx cases.
Diffstat (limited to 'git-export.c')
-rw-r--r--git-export.c81
1 files changed, 0 insertions, 81 deletions
diff --git a/git-export.c b/git-export.c
deleted file mode 100644
index 77f5198b7f..0000000000
--- a/git-export.c
+++ /dev/null
@@ -1,81 +0,0 @@
-#include "cache.h"
-#include "commit.h"
-
-/*
- * Show one commit
- */
-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, "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, "diff-tree -p %s %s", against, hex);
- system(cmdline);
- }
- printf("======== end ========\n\n");
-}
-
-/*
- * Show all unseen commits, depth-first
- */
-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);
-}
-
-void export(struct commit *top, struct commit *base)
-{
- mark_reachable(&top->object, 1);
- if (base)
- mark_reachable(&base->object, 2);
- show_unseen(top);
-}
-
-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_hex(argv[1], top_sha1) ||
- (argc == 3 && get_sha1_hex(argv[2], base_sha1)))
- usage("git-export top [base]");
- export(get_commit(top_sha1), argc==3 ? get_commit(base_sha1) : NULL);
- return 0;
-}