예제 #1
0
파일: base.py 프로젝트: jelmer/breezy-svn
 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"/"))
예제 #2
0
 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)
예제 #3
0
    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()
예제 #4
0
파일: base.py 프로젝트: jelmer/breezy-svn
    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)
예제 #5
0
 def test_unescape_svn_path_percent(self):
     self.assertEqual("foobar%b", unescape_svn_path(u"foobar%25b"))
예제 #6
0
 def test_unescape_svn_path_none(self):
     self.assertEqual("foobar", unescape_svn_path(u"foobar"))
예제 #7
0
 def test_unescape_svn_path_slash(self):
     self.assertEqual("foobar/", unescape_svn_path(u"foobar%2F"))