{"push_id":2370041572,"size":36,"distinct_size":36,"ref":"refs/heads/bw/protocol-v2","head":"f13df5003c3a233baeef8ee7cb49155279bf1154","before":"8219281a0fa5365a307a17618b77fda39d14edb7","commits":[{"sha":"7790065dbebe6fc5e0234059761ebc25db60cddb","author":{"name":"Brandon Williams","email":"0bba27b6e746038cce1b8ffca137bc89fbdd7a14@google.com"},"message":"pkt-line: introduce packet_read_with_status\n\nThe current pkt-line API encodes the status of a pkt-line read in the\nlength of the read content.  An error is indicated with '-1', a flush\nwith '0' (which can be confusing since a return value of '0' can also\nindicate an empty pkt-line), and a positive integer for the length of\nthe read content otherwise.  This doesn't leave much room for allowing\nthe addition of additional special packets in the future.\n\nTo solve this introduce 'packet_read_with_status()' which reads a packet\nand returns the status of the read encoded as an 'enum packet_status'\ntype.  This allows for easily identifying between special and normal\npackets as well as errors.  It also enables easily adding a new special\npacket in the future.\n\nSigned-off-by: Brandon Williams <bmwill@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/szeder/git-cooking-topics-for-travis-ci/commits/7790065dbebe6fc5e0234059761ebc25db60cddb"},{"sha":"3d78442374d598513c9b38b201286c1ba43518fc","author":{"name":"Brandon Williams","email":"0bba27b6e746038cce1b8ffca137bc89fbdd7a14@google.com"},"message":"pkt-line: allow peeking a packet line without consuming it\n\nSometimes it is advantageous to be able to peek the next packet line\nwithout consuming it (e.g. to be able to determine the protocol version\na server is speaking).  In order to do that introduce 'struct\npacket_reader' which is an abstraction around the normal packet reading\nlogic.  This enables a caller to be able to peek a single line at a time\nusing 'packet_reader_peek()' and having a caller consume a line by\ncalling 'packet_reader_read()'.\n\nSigned-off-by: Brandon Williams <bmwill@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/szeder/git-cooking-topics-for-travis-ci/commits/3d78442374d598513c9b38b201286c1ba43518fc"},{"sha":"ec4c31716ba73d614be473e5c3590e1f99655bba","author":{"name":"Brandon Williams","email":"0bba27b6e746038cce1b8ffca137bc89fbdd7a14@google.com"},"message":"pkt-line: add delim packet support\n\nOne of the design goals of protocol-v2 is to improve the semantics of\nflush packets.  Currently in protocol-v1, flush packets are used both to\nindicate a break in a list of packet lines as well as an indication that\none side has finished speaking.  This makes it particularly difficult\nto implement proxies as a proxy would need to completely understand git\nprotocol instead of simply looking for a flush packet.\n\nTo do this, introduce the special deliminator packet '0001'.  A delim\npacket can then be used as a deliminator between lists of packet lines\nwhile flush packets can be reserved to indicate the end of a response.\n\nDocumentation for how this packet will be used in protocol v2 will\nincluded in a future patch.\n\nSigned-off-by: Brandon Williams <bmwill@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/szeder/git-cooking-topics-for-travis-ci/commits/ec4c31716ba73d614be473e5c3590e1f99655bba"},{"sha":"39d79ac8f7bdc771d5b0565d8304a7be0acfd7b0","author":{"name":"Brandon Williams","email":"0bba27b6e746038cce1b8ffca137bc89fbdd7a14@google.com"},"message":"upload-pack: convert to a builtin\n\nIn order to allow for code sharing with the server-side of fetch in\nprotocol-v2 convert upload-pack to be a builtin.\n\nSigned-off-by: Brandon Williams <bmwill@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/szeder/git-cooking-topics-for-travis-ci/commits/39d79ac8f7bdc771d5b0565d8304a7be0acfd7b0"},{"sha":"432df689caf67fac51fdc8b3bad9f6e71532e8c8","author":{"name":"Brandon Williams","email":"0bba27b6e746038cce1b8ffca137bc89fbdd7a14@google.com"},"message":"upload-pack: factor out processing lines\n\nFactor out the logic for processing shallow, deepen, deepen_since, and\ndeepen_not lines into their own functions to simplify the\n'receive_needs()' function in addition to making it easier to reuse some\nof this logic when implementing protocol_v2.\n\nSigned-off-by: Brandon Williams <bmwill@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/szeder/git-cooking-topics-for-travis-ci/commits/432df689caf67fac51fdc8b3bad9f6e71532e8c8"},{"sha":"e6ec6edd457890cc441e8187b2d1eac4a1cabc95","author":{"name":"Brandon Williams","email":"0bba27b6e746038cce1b8ffca137bc89fbdd7a14@google.com"},"message":"transport: use get_refs_via_connect to get refs\n\nRemove code duplication and use the existing 'get_refs_via_connect()'\nfunction to retrieve a remote's heads in 'fetch_refs_via_pack()' and\n'git_transport_push()'.\n\nSigned-off-by: Brandon Williams <bmwill@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/szeder/git-cooking-topics-for-travis-ci/commits/e6ec6edd457890cc441e8187b2d1eac4a1cabc95"},{"sha":"44d94f1630ec719785ef6ddbf7fb698a73e87a49","author":{"name":"Brandon Williams","email":"0bba27b6e746038cce1b8ffca137bc89fbdd7a14@google.com"},"message":"connect: convert get_remote_heads to use struct packet_reader\n\nIn order to allow for better control flow when protocol_v2 is introduced\nconvert 'get_remote_heads()' to use 'struct packet_reader' to read\npacket lines.  This enables a client to be able to peek the first line\nof a server's response (without consuming it) in order to determine the\nprotocol version its speaking and then passing control to the\nappropriate handler.\n\nThis is needed because the initial response from a server speaking\nprotocol_v0 includes the first ref, while subsequent protocol versions\nrespond with a version line.  We want to be able to read this first line\nwithout consuming the first ref sent in the protocol_v0 case so that the\nprotocol version the server is speaking can be determined outside of\n'get_remote_heads()' in a future patch.\n\nSigned-off-by: Brandon Williams <bmwill@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/szeder/git-cooking-topics-for-travis-ci/commits/44d94f1630ec719785ef6ddbf7fb698a73e87a49"},{"sha":"3cbcb9f7964fb135ff683620308c345efb5794a4","author":{"name":"Brandon Williams","email":"0bba27b6e746038cce1b8ffca137bc89fbdd7a14@google.com"},"message":"connect: discover protocol version outside of get_remote_heads\n\nIn order to prepare for the addition of protocol_v2 push the protocol\nversion discovery outside of 'get_remote_heads()'.  This will allow for\nkeeping the logic for processing the reference advertisement for\nprotocol_v1 and protocol_v0 separate from the logic for protocol_v2.\n\nSigned-off-by: Brandon Williams <bmwill@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/szeder/git-cooking-topics-for-travis-ci/commits/3cbcb9f7964fb135ff683620308c345efb5794a4"},{"sha":"d49d4eba88f1f0fe9722ffcceb8ecd73999933e2","author":{"name":"Brandon Williams","email":"0bba27b6e746038cce1b8ffca137bc89fbdd7a14@google.com"},"message":"transport: store protocol version\n\nOnce protocol_v2 is introduced requesting a fetch or a push will need to\nbe handled differently depending on the protocol version.  Store the\nprotocol version the server is speaking in 'struct git_transport_data'\nand use it to determine what to do in the case of a fetch or a push.\n\nSigned-off-by: Brandon Williams <bmwill@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/szeder/git-cooking-topics-for-travis-ci/commits/d49d4eba88f1f0fe9722ffcceb8ecd73999933e2"},{"sha":"e2037d1077ccd3330262c3ecdd749588de90ffca","author":{"name":"Brandon Williams","email":"0bba27b6e746038cce1b8ffca137bc89fbdd7a14@google.com"},"message":"protocol: introduce enum protocol_version value protocol_v2\n\nIntroduce protocol_v2, a new value for 'enum protocol_version'.\nSubsequent patches will fill in the implementation of protocol_v2.\n\nSigned-off-by: Brandon Williams <bmwill@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/szeder/git-cooking-topics-for-travis-ci/commits/e2037d1077ccd3330262c3ecdd749588de90ffca"},{"sha":"ebdd90af6d5fc429c4bb73aa7ab90d79be1b626b","author":{"name":"Brandon Williams","email":"0bba27b6e746038cce1b8ffca137bc89fbdd7a14@google.com"},"message":"test-pkt-line: introduce a packet-line test helper\n\nIntroduce a packet-line test helper which can either pack or unpack an\ninput stream into packet-lines and writes out the result to stdout.\n\nSigned-off-by: Brandon Williams <bmwill@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/szeder/git-cooking-topics-for-travis-ci/commits/ebdd90af6d5fc429c4bb73aa7ab90d79be1b626b"},{"sha":"c96b76a0f371be7f7f7e4db74cd5d9edd22d07ed","author":{"name":"Brandon Williams","email":"0bba27b6e746038cce1b8ffca137bc89fbdd7a14@google.com"},"message":"serve: introduce git-serve\n\nIntroduce git-serve, the base server for protocol version 2.\n\nProtocol version 2 is intended to be a replacement for Git's current\nwire protocol.  The intention is that it will be a simpler, less\nwasteful protocol which can evolve over time.\n\nProtocol version 2 improves upon version 1 by eliminating the initial\nref advertisement.  In its place a server will export a list of\ncapabilities and commands which it supports in a capability\nadvertisement.  A client can then request that a particular command be\nexecuted by providing a number of capabilities and command specific\nparameters.  At the completion of a command, a client can request that\nanother command be executed or can terminate the connection by sending a\nflush packet.\n\nSigned-off-by: Brandon Williams <bmwill@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/szeder/git-cooking-topics-for-travis-ci/commits/c96b76a0f371be7f7f7e4db74cd5d9edd22d07ed"},{"sha":"9598249e76af66d123acf462daaffe64876d207e","author":{"name":"Brandon Williams","email":"0bba27b6e746038cce1b8ffca137bc89fbdd7a14@google.com"},"message":"ls-refs: introduce ls-refs server command\n\nIntroduce the ls-refs server command.  In protocol v2, the ls-refs\ncommand is used to request the ref advertisement from the server.  Since\nit is a command which can be requested (as opposed to mandatory in v1),\na client can sent a number of parameters in its request to limit the ref\nadvertisement based on provided ref-patterns.\n\nSigned-off-by: Brandon Williams <bmwill@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/szeder/git-cooking-topics-for-travis-ci/commits/9598249e76af66d123acf462daaffe64876d207e"},{"sha":"c7a4e797b6ee42fadd9b800a26eff496f87797fe","author":{"name":"Brandon Williams","email":"0bba27b6e746038cce1b8ffca137bc89fbdd7a14@google.com"},"message":"connect: request remote refs using v2\n\nTeach the client to be able to request a remote's refs using protocol\nv2.  This is done by having a client issue a 'ls-refs' request to a v2\nserver.\n\nSigned-off-by: Brandon Williams <bmwill@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/szeder/git-cooking-topics-for-travis-ci/commits/c7a4e797b6ee42fadd9b800a26eff496f87797fe"},{"sha":"b64a240a51e5eec5d4a8503ad5c4f6a017b4347c","author":{"name":"Brandon Williams","email":"0bba27b6e746038cce1b8ffca137bc89fbdd7a14@google.com"},"message":"transport: convert get_refs_list to take a list of ref patterns\n\nConvert the 'struct transport' virtual function 'get_refs_list()' to\noptionally take an argv_array of ref patterns.  When communicating with\na server using protocol v2 these ref patterns can be sent when\nrequesting a listing of their refs allowing the server to filter the\nrefs it sends based on the sent patterns.\n\nSigned-off-by: Brandon Williams <bmwill@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/szeder/git-cooking-topics-for-travis-ci/commits/b64a240a51e5eec5d4a8503ad5c4f6a017b4347c"},{"sha":"fa394791b4b3095e499ec11418d4e3f0ec19923f","author":{"name":"Brandon Williams","email":"0bba27b6e746038cce1b8ffca137bc89fbdd7a14@google.com"},"message":"transport: convert transport_get_remote_refs to take a list of ref patterns\n\nConvert 'transport_get_remote_refs()' to optionally take a list of ref\npatterns.\n\nSigned-off-by: Brandon Williams <bmwill@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/szeder/git-cooking-topics-for-travis-ci/commits/fa394791b4b3095e499ec11418d4e3f0ec19923f"},{"sha":"2e3dc00fdd6e10ffbde8aa1d35832200ece6f6e6","author":{"name":"Brandon Williams","email":"0bba27b6e746038cce1b8ffca137bc89fbdd7a14@google.com"},"message":"ls-remote: pass ref patterns when requesting a remote's refs\n\nConstruct an argv_array of the ref patterns supplied via the command\nline and pass them to 'transport_get_remote_refs()' to be used when\ncommunicating protocol v2 so that the server can limit the ref\nadvertisement based on the supplied patterns.\n\nSigned-off-by: Brandon Williams <bmwill@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/szeder/git-cooking-topics-for-travis-ci/commits/2e3dc00fdd6e10ffbde8aa1d35832200ece6f6e6"},{"sha":"4b2257c581d19c682742de16da4a796c5194266b","author":{"name":"Brandon Williams","email":"0bba27b6e746038cce1b8ffca137bc89fbdd7a14@google.com"},"message":"fetch: pass ref patterns when fetching\n\nConstruct a list of ref patterns to be passed to\n'transport_get_remote_refs()' from the refspec to be used during the\nfetch.  This list of ref patterns will be used to allow the server to\nfilter the ref advertisement when communicating using protocol v2.\n\nSigned-off-by: Brandon Williams <bmwill@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/szeder/git-cooking-topics-for-travis-ci/commits/4b2257c581d19c682742de16da4a796c5194266b"},{"sha":"4cd35d92b3ab1bb75304464413216f84f8950f3b","author":{"name":"Brandon Williams","email":"0bba27b6e746038cce1b8ffca137bc89fbdd7a14@google.com"},"message":"push: pass ref patterns when pushing\n\nConstruct a list of ref patterns to be passed to 'get_refs_list()' from\nthe refspec to be used during the push.  This list of ref patterns will\nbe used to allow the server to filter the ref advertisement when\ncommunicating using protocol v2.\n\nSigned-off-by: Brandon Williams <bmwill@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/szeder/git-cooking-topics-for-travis-ci/commits/4cd35d92b3ab1bb75304464413216f84f8950f3b"},{"sha":"f190a419c40be3021ad95dfe7b51d93f0c6159f7","author":{"name":"Brandon Williams","email":"0bba27b6e746038cce1b8ffca137bc89fbdd7a14@google.com"},"message":"upload-pack: introduce fetch server command\n\nIntroduce the 'fetch' server command.\n\nSigned-off-by: Brandon Williams <bmwill@google.com>\nSigned-off-by: Junio C Hamano <gitster@pobox.com>","distinct":true,"url":"https://api.github.com/repos/szeder/git-cooking-topics-for-travis-ci/commits/f190a419c40be3021ad95dfe7b51d93f0c6159f7"}]}
{"actor":{"display_login":"szeder"}}