RB4: Ensure that revisions are text before converting to unicode

Review Request #12798 — Created Jan. 23, 2023 and submitted — Latest diff uploaded

Review Board

In commit b972f20c55, the diff parser was refactored to remove
DiffParser.get_orig_commit_id(). As aprt of that, a regression was
introduced into create_filediff() that meant whenever the parent revision
was an instance of Revision (rather than a str or bytes), we had a crash
in convert_to_unicode.

The parent revision can be a Revision object specifically whan it is
PRE_CREATION, such as when adding a new file to a Perforce repository.

This change re-introduces the coersion to string of the
parent_source_revision which was lost in the refactoring.

Fixes https://hellosplat.com/s/beanbag/tickets/4988/.
NOTE: A slightly different patch is required for RB5.

See also https://reviews.reviewboard.org/r/12799/

Re-do the steps that trigger the issue in https://hellosplat.com/s/beanbag/tickets/4988/. PASS

I tried to run the nose tests, and mostly they pass, but then the Perforce tests just hang. There seems to be some local setup required, but I couldn't find any info on setting up the environemnt that the tests expect.