Skip to content
  • Pulkit Goyal's avatar
    narrow: send specs as bundle2 data instead of param (issue5952) (issue6019) · 280f7a095df8
    Pulkit Goyal authored
    Before this patch, when ACL is involved, narrowspecs are send as bundle2
    parameter for narrow:spec bundle2 part. The limitation of bundle2 parts are they
    cannot send data larger than 255 bytes. Includes and excludes in narrow are not
    limited by size and they can grow over 255 bytes.
    
    This patch introduces a new mandatory bundle2 part and send narrowspecs as data
    of that. The new bundle2 part is introduced to keep things cleaner and easy to
    distinguish related to backward compatibility.
    The part is mandatory because without server's narrowspec, the local ACL narrow
    repo won't work.
    
    This patch makes clients compatible with servers which have older versions.
    However I left a comment that we should drop the other bundle2 part soon as
    that's broken and people should not rely on that.
    
    I named the new bundle2 part 'Narrow:responsespec' because:
    
    1) Capital 'N' to make it mandatory
    2) 'Narrow:spec' cannot be used because bundle2 enforces that there should not
    be two different parts which resolve to same name when lowercased.
    3) reponsespec clears that they are specs which are send as reponse by the
    server
    
    While I was here, I renamed `narrowhgacl` section to `narrowacl` as suggested by
    idlsoft@ and martinvonz@.
    
    Differential Revision: https://phab.mercurial-scm.org/D6310
    280f7a095df8