|
|
|
#ifndef BUILTIN_H
|
|
|
|
#define BUILTIN_H
|
|
|
|
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <limits.h>
|
|
|
|
|
|
|
|
extern const char git_version_string[];
|
|
|
|
extern const char git_usage_string[];
|
|
|
|
|
|
|
|
extern void help_unknown_cmd(const char *cmd);
|
|
|
|
|
|
|
|
extern int cmd_help(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_version(int argc, const char **argv, const char *prefix);
|
|
|
|
|
|
|
|
extern int cmd_whatchanged(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_show(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_log(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_diff(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_format_patch(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_count_objects(int argc, const char **argv, const char *prefix);
|
|
|
|
|
|
|
|
extern int cmd_prune(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_prune_packed(int argc, const char **argv, const char *prefix);
|
|
|
|
|
|
|
|
extern int cmd_push(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_grep(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_rm(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_add(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_rev_list(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_check_ref_format(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_init_db(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_tar_tree(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_upload_tar(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_get_tar_commit_id(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_ls_files(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_ls_tree(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_read_tree(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_commit_tree(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_apply(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_show_branch(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_diff_files(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_diff_index(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_diff_stages(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_diff_tree(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_cat_file(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_rev_parse(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_update_index(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_update_ref(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_fmt_merge_msg(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_mv(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_repo_config(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_name_rev(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_pack_objects(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_unpack_objects(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_symbolic_ref(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int cmd_checkout_index(int argc, const char **argv, const char *prefix);
|
git builtin "push"
This adds a builtin "push" command, which is largely just a C'ification of
the "git-push.sh" script.
Now, the reason I did it as a built-in is partly because it's yet another
step on relying less on shell, but it's actually mostly because I've
wanted to be able to push to _multiple_ repositories, and the most obvious
and simplest interface for that would seem be to just have a "remotes"
file that has multiple URL entries.
(For "pull", having multiple entries should either just select the first
one, or you could fall back on the others on failure - your choice).
And quite frankly, it just became too damn messy to do that in shell.
Besides, we actually have a fair amount of infrastructure in C, so it just
wasn't that hard to do.
Of course, this is almost totally untested. It probably doesn't work for
anything but the one trial I threw at it. "Simple" doesn't necessarily
mean "obviously correct".
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
19 years ago
|
|
|
|
|
|
|
extern int cmd_write_tree(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int write_tree(unsigned char *sha1, int missing_ok, const char *prefix);
|
|
|
|
|
|
|
|
extern int cmd_mailsplit(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int split_mbox(const char **mbox, const char *dir, int allow_bare, int nr_prec, int skip);
|
|
|
|
|
|
|
|
extern int cmd_mailinfo(int argc, const char **argv, const char *prefix);
|
|
|
|
extern int mailinfo(FILE *in, FILE *out, int ks, const char *encoding, const char *msg, const char *patch);
|
|
|
|
|
|
|
|
extern int cmd_stripspace(int argc, const char **argv, const char *prefix);
|
|
|
|
extern void stripspace(FILE *in, FILE *out);
|
|
|
|
#endif
|