функция копирования pysvn файла в ревизии - PullRequest
0 голосов
/ 30 ноября 2011

Я использую pysvn 1.7.5 для доступа к моему серверу svn. Если я хочу скопировать один файл с сервера SVN на мой локальный диск, функция pysvn не реализована. Но если я установлю соединение по https, я смогу скопировать один файл, не проверяя дыру в каталоге.

def fetch_svn_file(self, file_url, local_path):

    local_path = local_path.replace('\\', '/')

    # Set up a HTTPS request with username/password authentication
    try:
        # create a password manager
        password_mgr = HTTPPasswordMgrWithDefaultRealm()        

        # Add the username and password.
        password_mgr.add_password(None, 'https://www.xyz.com', self.default_user, self.default_passwd)
        opener = build_opener(HTTPBasicAuthHandler(password_mgr))
        remote_file = opener.open(file_url)

        content = remote_file.read()     

        try:
            local_file = open(local_path,"w")
            local_file.write(content)
            local_file.close()
        except IOError:
            return -1

    except URLError, e:     
        print 'URLError: "%s"' % e
        return -2

    return 0

Точно так же, как черепаха делает это, если я перетаскиваю файл из браузера Retro на свой локальный диск, но черепаха также может копировать отдельные файлы в другой ревизии. Кто-нибудь сейчас, как я могу реализовать это в pysvn или в простом коде Python? Если эти функции реализованы с помощью черепахи, это должно быть возможно и в pysvn ... из-за той же команды разработчиков.

1 Ответ

0 голосов
/ 01 декабря 2011

Я уже получил ответ.: -)

есть стандартная функция pysvn, которая называется "pysvn.export".Название было так странно для функции копирования ....

...