Christian Couder <christian.couder@xxxxxxxxx> writes: > I agree that it's more useful the other way though. That is for a > server to know that the client has the capability but might not want > to use it. > > For example, when C clones without using X directly, it can be a > burden for S to have to fetch large objects from X (as it would use > precious disk space on S, and unnecessarily duplicate large objects). > So S might want to say "please use a newer or different client that > has the 'promisor-remote' capability" if it knows that the client > doesn't have this capability. If S knows that C has the capability but > didn't configure it or doesn't want to use it, it could instead say > something like "please consider activating the 'promisor-remote' > capability by doing this and that to avoid burdening this server and > get a faster clone". > > Note that the client might not be 'git'. It might be a "compatible" > implementation (libgit2, gix, JGit, etc), so using the version passed > in the "agent" protocol capability is not a good way to detect if the > client has the capability or not. It is none of S's business to even know about C's "true" capability, if C does not want to use it with S. I do not quite find the above a credible justification.