X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=peek-remote.c;h=2b30980b04e68a84bd300d647e80a34c7d3e621f;hb=93d5f0619ccf10d7a16834b9e3be38871d2aae6c;hp=4b1d0d5ba8ebb61c50a8766c73c6ba19e6efdef9;hpb=2b64f88f09ae2169ec85652b46897574e352936d;p=git.git diff --git a/peek-remote.c b/peek-remote.c index 4b1d0d5ba..2b30980b0 100644 --- a/peek-remote.c +++ b/peek-remote.c @@ -7,11 +7,11 @@ static const char peek_remote_usage[] = "git-peek-remote [--exec=upload-pack] [host:]directory"; static const char *exec = "git-upload-pack"; -static int peek_remote(int fd[2]) +static int peek_remote(int fd[2], unsigned flags) { struct ref *ref; - get_remote_heads(fd[0], &ref, 0, NULL); + get_remote_heads(fd[0], &ref, 0, NULL, flags); packet_flush(fd[1]); while (ref) { @@ -27,27 +27,44 @@ int main(int argc, char **argv) char *dest = NULL; int fd[2]; pid_t pid; + int nongit = 0; + unsigned flags = 0; + + setup_git_directory_gently(&nongit); for (i = 1; i < argc; i++) { char *arg = argv[i]; if (*arg == '-') { - if (!strncmp("--exec=", arg, 7)) + if (!strncmp("--exec=", arg, 7)) { exec = arg + 7; - else - usage(peek_remote_usage); - continue; + continue; + } + if (!strcmp("--tags", arg)) { + flags |= REF_TAGS; + continue; + } + if (!strcmp("--heads", arg)) { + flags |= REF_HEADS; + continue; + } + if (!strcmp("--refs", arg)) { + flags |= REF_NORMAL; + continue; + } + usage(peek_remote_usage); } dest = arg; break; } + if (!dest || i != argc - 1) usage(peek_remote_usage); pid = git_connect(fd, dest, exec); if (pid < 0) return 1; - ret = peek_remote(fd); + ret = peek_remote(fd, flags); close(fd[0]); close(fd[1]); finish_connect(pid);