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