2017-02-21 92 views
0

У меня есть программа, написанная на Python. Я использую изменения для пользователей, использующих SVN. В некоторых случаях SVN застревает, и изменения не загружаются на компьютер пользователя. В таком случае мне необходимо выполнить команду SVN CLEANUP вручную. Проблема в том, что я не знаю, какая станция имеет такую ​​ревизию. поэтому пользователи продолжают работать над более старыми версиями, что вызывает проблемы.Как сравнить локальные и репозитарные версии SVN?

Я хочу написать код, который на обеденном перечне программ будет сравнивать местную ревизию SVN с сервером, и если она не соответствует сообщению, появится сообщение.

мне удалось написать код, который получает пересмотр сервера:

import re,subprocess 
svn_info = subprocess.check_output("svn info svn_address") 
print (re.search(ur"Revision:\s\d+", svn_info)).group() 

Но я не понимаю, как я могу получить местную версию для сравнения.

Если я иду в локальную папку SVN и сделать:

svn info 

Я вижу местную версию. Но я не знаю, как получить доступ к этим данным внутри кода python.

Любая идея?

ответ

1

Я бы рекомендовал использовать «поддерживаемую» SVN-оболочку python вместо того, чтобы пытаться самостоятельно анализировать текстовые результаты внешней команды. Посмотрите here.

+0

Я не думаю, что это необходимо для установки пакета только для двух целых чисел. печать предназначена только для меня .. она не будет в самом коде .... Мне нужен способ узнать локальную версию svn. Вы можете помочь с этим? :) – avi

+0

Да, вы правы, это была только личная точка зрения, не нужно бесконечных дебатов о такой крошечной проблеме дизайна ;-) Чтобы ответить на ваш вопрос, я верю, что информация svn (без svn-адреса) дает локальную пересмотр. Но я не использовал его какое-то время, поэтому я могу ошибаться. EDIT Извините, только что вы отредактировали свой вопрос ... –

+0

это правда, что svn-информация дает ответ, но он работает, когда я делаю это вручную, поскольку я в правильной директории ... если я это делаю в python, он сообщает me: svn: warning: '.' не рабочая копия – avi