Hmm, as I understand it, a new revision is based on the previous revision for a normal edit (that's why we have the initial value [here](https://github.com/mozilla/kuma/blob/master/apps/wiki/views.py#L962)). It seems to me like it's the way things work currently, but not sure if that's the right concept. At least this helps us to sort out the ancestor revisions.

Translations refer to the latest revision of the original doc and I think it should be done this way for the PUT method, too. Otherwise there is no data to compare against the English doc and we can't use this data for a l10n dashboard or so to detect outdated translations (if based_on is just null). I would say the PUT method should behave the same like you edit a translation through the page editor.

And yes, tests should follow :) I will try to work on tests, but will probably wait until we figured out what's the right way of doing things here.