]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'jx/proc-receive-hook'
authorJunio C Hamano <gitster@pobox.com>
Fri, 25 Sep 2020 22:25:39 +0000 (15:25 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 25 Sep 2020 22:25:39 +0000 (15:25 -0700)
"git receive-pack" that accepts requests by "git push" learned to
outsource most of the ref updates to the new "proc-receive" hook.

* jx/proc-receive-hook:
  doc: add documentation for the proc-receive hook
  transport: parse report options for tracking refs
  t5411: test updates of remote-tracking branches
  receive-pack: new config receive.procReceiveRefs
  doc: add document for capability report-status-v2
  New capability "report-status-v2" for git-push
  receive-pack: feed report options to post-receive
  receive-pack: add new proc-receive hook
  t5411: add basic test cases for proc-receive hook
  transport: not report a non-head push as a branch

1  2 
Documentation/githooks.txt
Documentation/technical/pack-protocol.txt
Documentation/technical/protocol-capabilities.txt
Makefile
builtin/receive-pack.c
builtin/send-pack.c
remote.h
send-pack.c
t/t5516-fetch-push.sh
transport-helper.c
transport.c

Simple merge
diff --cc Makefile
Simple merge
index 439f29d6c7f4c5bc856611a3e900ff7e9a77b9f5,3eecb8c33cfc32bf4fd56b7f7aaf96315ff180f3..bb9909c52e4e01e0ab37dbd020138ba254d44b51
@@@ -1625,10 -2028,10 +2030,12 @@@ static struct command *read_head_info(s
                linelen = strlen(reader->line);
                if (linelen < reader->pktlen) {
                        const char *feature_list = reader->line + linelen + 1;
 +                      const char *hash = NULL;
 +                      int len = 0;
                        if (parse_feature_request(feature_list, "report-status"))
                                report_status = 1;
+                       if (parse_feature_request(feature_list, "report-status-v2"))
+                               report_status_v2 = 1;
                        if (parse_feature_request(feature_list, "side-band-64k"))
                                use_sideband = LARGE_PACKET_MAX;
                        if (parse_feature_request(feature_list, "quiet"))
Simple merge
diff --cc remote.h
Simple merge
diff --cc send-pack.c
Simple merge
Simple merge
Simple merge
diff --cc transport.c
index 43e24bf1e539db89fcbc8b5b778558054ea8674f,a69f2cf806b278c739bd4e5fe11ba77ce9ff6f94..ffe21158455116972dd8b0cf77167948fb6e66e6
@@@ -436,11 -443,7 +438,8 @@@ static void update_one_tracking_ref(str
  {
        struct refspec_item rs;
  
-       if (ref->status != REF_STATUS_OK && ref->status != REF_STATUS_UPTODATE)
-               return;
 +      memset(&rs, 0, sizeof(rs));
-       rs.src = ref->name;
+       rs.src = refname;
        rs.dst = NULL;
  
        if (!remote_find_tracking(remote, &rs)) {