def parse_file_id(self, file_id): try: (revnum_str, rest) = file_id.split("@", 1) revnum = int(revnum_str) (uuid, bp, ip) = rest.split(":", 2) except ValueError: raise errors.InvalidFileId(file_id) return (uuid, revnum, (u"%s/%s" % (mapping.unescape_svn_path(bp), mapping.unescape_svn_path(ip))).strip(u"/"))
def parse_file_id(self, fileid): try: (revnum_str, rest) = fileid.split("@", 1) revnum = int(revnum_str) (uuid, path_escaped) = rest.split(":", 1) except ValueError: raise InvalidFileId(fileid) path = mapping.unescape_svn_path(path_escaped).strip("/") return (uuid, revnum, path)
def revision_id_bzr_to_foreign(cls, revid): assert isinstance(revid, str) if not revid.startswith(cls.revid_prefix): raise errors.InvalidRevisionId(revid, "") try: (version, uuid, branch_path, srevnum) = revid.split(":") except ValueError: raise errors.InvalidRevisionId(revid, "") branch_path = mapping.unescape_svn_path(branch_path) return (uuid, branch_path, int(srevnum)), cls()
def _parse_revision_id(cls, revid): if not isinstance(revid, bytes): raise TypeError(revid) if not revid.startswith(cls.revid_prefix): raise bzr_errors.InvalidRevisionId(revid, "") try: (version, uuid, branch_path, srevnum) = revid.split(":") except ValueError: raise bzr_errors.InvalidRevisionId(revid, "") scheme = version[len(cls.revid_prefix):] branch_path = mapping.unescape_svn_path(branch_path) return (uuid, branch_path, int(srevnum), scheme)
def test_unescape_svn_path_percent(self): self.assertEqual("foobar%b", unescape_svn_path(u"foobar%25b"))
def test_unescape_svn_path_none(self): self.assertEqual("foobar", unescape_svn_path(u"foobar"))
def test_unescape_svn_path_slash(self): self.assertEqual("foobar/", unescape_svn_path(u"foobar%2F"))