]> source.dussan.org Git - jgit.git/commit
Align request policies with CGit 76/1202276/6
authorLuca Milanesio <luca.milanesio@gmail.com>
Mon, 7 Oct 2024 22:16:58 +0000 (23:16 +0100)
committerMatthias Sohn <matthias.sohn@sap.com>
Fri, 11 Oct 2024 23:09:30 +0000 (01:09 +0200)
commit1519c147948eb1108bdf45f2aeed84746dacff9c
tree04e6f5eccec79f2a79f07b3f52245a180adfd52e
parentf9addaba0392afaee0e3ebe3f6845c9b7681526d
Align request policies with CGit

CGit defines the SHA request policies using a bitmask
that represents which policy is implied by another policy.

For example, in CGit the ALLOW_TIP_SHA1 is 0x01 and ALLOW_REACHABLE_SHA1
is 0x02, which are associated to two different bit in a 3-bit value.
The ALLOW_ANY_SHA1 value is 0x07 which denotes a different policy that
implies the previous two ones, because is represented with a 3-bit
bitmask having all ones.

Associate the JGit RequestPolicy enum to the same CGit bitmask values
and use the same logic for the purpose of advertising the server
capabilities.

The JGit code becomes easier to read and associate with its counterpart
in CGit, especially during the capabilities advertising phase.

Also add a new utility method RequestPolicy.implies() which is more
readable than a direct bitmask and operator.

Bug: jgit-68
Change-Id: I6b2649b06623a3b8226ee8413e4f1f58ad8ea28b
org.eclipse.jgit/src/org/eclipse/jgit/transport/UploadPack.java