В документации, которая у вас уже есть в вашем вопросе, указано:
parents (string):
A comma-separated list of SHA1s of the commits that should be the parents of the newly created commit.
When omitted, the new commit will inherit from and become a child of the main branch's tip/HEAD commit.
When more than one SHA1 is provided, the first SHA1 identifies the commit from which the content will be inherited.
When more than 2 parents are provided on a Mercurial repo, a 400 is returned as Mercurial does not support "octopus merges".
Это действительно ничего не говорит о профилактике, но в описании параметра branch
указано:
When a branch name is not specified, but a parent SHA1 is provided, then Bitbucket asserts that it represents the main branch's current HEAD/tip, or a 409 is returned.
Похоже, вам просто нужно добавить этот параметр в полезную нагрузку данных, и это должно предотвратить изменения, если предоставленный хэш не является текущим коммитом.Затем вы получите ответ со статусом http 409.
-d 'src%2Flocale%2Fen.js=test&message=Test%20commit&parents=sha-hash'