diff --git a/builtin-receive-pack.c b/builtin-receive-pack.c
index e8bde02c271ace4745e245b001652b3b96d798f5..78c0e69cdc9fe2d21e83947932cb353c0553452e 100644 (file)
--- a/builtin-receive-pack.c
+++ b/builtin-receive-pack.c
break;
free_commit_list(bases);
if (!ent) {
break;
free_commit_list(bases);
if (!ent) {
- error("denying non-fast forward %s"
+ error("denying non-fast-forward %s"
" (you should pull first)", name);
" (you should pull first)", name);
- return "non-fast forward";
+ return "non-fast-forward";
}
}
if (run_update_hook(cmd)) {
}
}
if (run_update_hook(cmd)) {
int cmd_receive_pack(int argc, const char **argv, const char *prefix)
{
int cmd_receive_pack(int argc, const char **argv, const char *prefix)
{
+ int advertise_refs = 0;
+ int stateless_rpc = 0;
int i;
char *dir = NULL;
int i;
char *dir = NULL;
const char *arg = *argv++;
if (*arg == '-') {
const char *arg = *argv++;
if (*arg == '-') {
- /* Do flag handling here */
+ if (!strcmp(arg, "--advertise-refs")) {
+ advertise_refs = 1;
+ continue;
+ }
+ if (!strcmp(arg, "--stateless-rpc")) {
+ stateless_rpc = 1;
+ continue;
+ }
+
usage(receive_pack_usage);
}
if (dir)
usage(receive_pack_usage);
}
if (dir)
" report-status delete-refs ofs-delta " :
" report-status delete-refs ";
" report-status delete-refs ofs-delta " :
" report-status delete-refs ";
- add_alternate_refs();
- write_head_info();
- clear_extra_refs();
+ if (advertise_refs || !stateless_rpc) {
+ add_alternate_refs();
+ write_head_info();
+ clear_extra_refs();
- /* EOF */
- packet_flush(1);
+ /* EOF */
+ packet_flush(1);
+ }
+ if (advertise_refs)
+ return 0;
read_head_info();
if (commands) {
read_head_info();
if (commands) {