Я делаю PHP-инструмент, который подключается к репозиторию, загружает список коммитов и сохраняет их локально. Однако из-за того, что некоторые репозитории являются ОГРОМНЫМИ и захватывают результаты их журнала в длительное время ожидания и возможные тайм-ауты/ошибки, я хотел бы загрузить каждое сообщение фиксации, используя асинхронные запросы.SVN: Возможно ли получить список номеров ревизий для заданного пути?
Итак, у меня есть начальную и конечную точки в истории изменений, и я могу захватить все журналы, как это:
svn log -r <from_revision>:<to_revision> <REPO_URL>
... и я, возможно, в конечном итоге с файлом XML, который настолько огромная, что потребуется много времени для загрузки, долгого времени и много ресурсов для синтаксического анализа и долгого времени для хранения.
Если я знаю, что начало и конечную точку, я могу создать для() цикл, чтобы захватить пересмотров один за другим:
svn log -r <revision> ...
НО, так как я не знаю, какие существуют определенные изменения для данного пути я получу ошибку. Я могу заставить приложение игнорировать эту ошибку во время обновления, но это неприятный взлом, и он будет отправлять запросы и ждать ответов в любом случае - это совсем не хорошо.
Итак, мне нужно что-то вроде этого:
- «дать мне список номеров ревизий для этого пути», ИЛИ:
- «дать мне список номеров ревизий для этого пути, и между ними
Таким образом, я смог бы сделать массив допустимых изменений для пути в хранилище и получить их один за другим.
Все предложения приветствуются, спасибо заранее ,
Вы считаете, что используете привязки SVN, а не вызываете исполняемый файл SVN CLI? IIRC, они уже существуют для PHP. Это будет гораздо более программный и менее подверженный ошибкам интерфейс. – rmeador