def __init__(
            self,
            repo,
            review_branch,
            review_hash,
            tracking_branch,
            tracking_hash,
            lander,
            repo_name,
            browse_url=None):
        """Create a new relationship tracker for the supplied branch names.

        :repo: a callable supporting git commands, e.g. repo("status")
        :review_branch: the abdt_gittypes.GitReviewBranch
        :review_hash: the commit hash of the branch or None
        :tracking_branch: the abdt_gittypes.GitWorkingBranch
        :tracking_hash: the commit hash of the branch or None
        :lander: a lander conformant to abdt_lander
        :repo_name: a short string to identify the repo to humans
        :browse_url: a URL to browse the branch or repo (may be None)

        """
        self._repo = repo
        self._review_branch = review_branch
        self._review_hash = review_hash
        self._tracking_branch = tracking_branch
        self._tracking_hash = tracking_hash
        self._lander = lander
        assert self._review_branch_valid_or_none()
        assert self._tracking_branch_valid_or_none()
        self._repo_name = repo_name
        self._browse_url = browse_url
        assert self._repo_name is not None
dataset/ETHPy150Open bloomberg/phabricator-tools/py/abd/abdt_branch.py/Branch.__init__/original