#teamcity #teamcity-rest-api
Вопрос:
Я просмотрел архивы SO для этого, и, хотя есть много похожих вопросов, ничто на самом деле не отвечает на мой конкретный вопрос.
Мы используем git в качестве VCS, и я хочу иметь возможность запускать удаленную сборку, в которой исходное дерево в точности отражает все, что находится на компьютере локального пользователя, включая любые локальные изменения, которые они внесли. Если я просто буду следовать приведенным здесь инструкциям, то у меня не будет возможности указать, на какую версию наложить патч поверх. Действительно, пару раз я пытался делать все точно так, как описано в документации, я получал сообщение об ошибке в журнале сборки «Не удалось применить исправление».
Я чувствую, что мне нужен эквивалент ОТДЫХА, чтобы выбрать что-то в раскрывающемся списке «Изменения > Включить изменения». Таким образом, я могу выбрать точный хэш git, который я хочу сделать корнем VCS, что должно гарантировать, что патч может быть применен чисто поверх него.
Но как мне это сделать? Я не очень хорошо понимаю <lastChanges>
xml-тег.
<lastChanges>
<change id="{id_returned_from_uploading_diff}" personal="true"/>
</lastChanges>
Могу ли я добавить что-то в этот большой двоичный объект, чтобы патч был применен поверх определенного хэша git? К сожалению, изменение «id» на самом деле не является хэшем git само по себе, например, учитывая хэш git, я могу использовать такой запрос, как
https://<teamcity-server>/app/rest/changes?locator=version:<git-hash>
и верните список множества различных «идентификаторов изменений» с одним и тем же хэшем git, который я нахожу несколько запутанным, потому что теперь я не знаю, какой идентификатор изменения использовать.
В любом случае, надеюсь, кто-нибудь сможет прояснить это для меня.