2016-03-03 1 views
1

Я загружаю файлы из SVN, файлы довольно большие (~ 300 МБ) Я использую сценарий много раз, и в случае, если файл уже существует, я не хочу скачивать это снова, для этого мне нужно проверить, что файл, который у меня есть, тот же, что и на SVN (проблемы с подключением иногда убивают мой скрипт, а загрузка не завершается)Как проверить файл, загруженный с svn - Python, osx

Есть ли какой-либо способ проверки перед загрузкой? (Например, получить контрольную сумму файла SVN, который я не мог найти, как это сделать)

Я использую эту линию для загрузки:

fn,download_exit_code=urllib.urlretrieve(url_path,ver_name) 

Спасибо впереди ...

ответ

0

Вы можете проверить номер версии SVN. Вот код, который работает для меня:

import subprocess 
svn_url = ... 
version_string = subprocess.check_output("svnversion") 
parts = version_string.split(":") 
svn_version = int(''.join([s for s in parts[-1] if s.isdigit()])) 

repository_info = subprocess.check_output(
     "svn info " + svn_url 
     ) 
for line in repository_info.split("\n"): 
    if line.lower().startswith("last changed rev"): 
     latest_svn_version = int(''.join([s for s in line if s.isdigit()])) 
if svn_version < latest_svn_version: 
    # Download new 

ли требуют использовать SVN, чтобы загрузить файл, хотя (через svn up).

0

Если у вас есть доступ к svn, вы можете проверить файл с помощью svn checkout и запустить svn update. Обновление svn обновит файл, если он изменился и в противном случае ничего не сделает.

import os 
import subprocess 

os.chdir('/path/to/file') 
subprocess.check_call('svn update') 
Смежные вопросы