I really wanted to implement this using native jj commands, but I came
to the conclusion we should just defer to Git for two reasons:
1. Jujutsu decouples safety checks from the actual push operation,
making it a real pain to use this push function. E.g, you need to
make sure a bookmark exists, is tracked on the remote. Moving it
requires `--allow-backwards`. All this needs to happen before push
time, which doesn't work well with the mozversioncontrol model here.
It puts all that complexity on the shoulders of the user.
2. For `./mach try` we need to be able to push arbitrary Git refs,
namely `refs/notes/decision-parameters`. This simply isn't supported by Jujutsu yet,
which means we'd need to defer to the underlying Git implementation
anyway.
Initially that's what I did, but after a few frustrating days, I
realized that if I just always deferred to Git, all the annoying pain
points of trying to use my `mach try` prototype with Jujutsu simply went
away.
Differential Revision: https://phabricator.services.mozilla.com/D295618