Agreed. In a personal project I'm hoping to release I've taken the approach of integrating at the Git layer, but then providing some small quality of life improvements if you're using Git{Hub,Lab} in a way that I can easily support more in the future. GitHub is not Git.
Azure DevOps has an additional requirement that Git clients support a protocol feature called "multi-ack". We don't support it yet, and we didn't think we need it.
Rather than blocking our roll-out on implementing multi-ack, we just disabled this for Azure DevOps for now. We do have a fallback as long as the user isn't using shallow clones.
9 comments
[ 3.2 ms ] story [ 33.0 ms ] threadI worry sometimes that we've made GitHub too loadbearing so its great to see a devtools company embrace git more generally that just GitHub
But since T1892 is presumably their internal ticket tracker, I wonder why this got the call-out
> (not (str:containsp "ssh.dev.azure.com" repo))
; https://github.com/screenshotbot/screenshotbot-oss/blob/main...
Rather than blocking our roll-out on implementing multi-ack, we just disabled this for Azure DevOps for now. We do have a fallback as long as the user isn't using shallow clones.
You can even use the `--filter=tree:0` option to `git clone` with `git sparse-checkout` to only fetch subsets of the repository.
Using upload-pack allowed us to remove that constraint, since even in a shallow clone we can still get the commit graph via SSH from the remote.