Я хочу изменить этот существующий конвейер (который публикуется на тестовом сервере), чтобы файлы изменялись только в текущей ветке. Проблема, с которой я сейчас сталкиваюсь, заключается в том, что если один человек отправляет данные в ветку A, а другой — в ветку B, конвейер перезаписывает все файлы файлами из ветки B, независимо от того, были ли они фактически изменены. Я попробовал обновить кассу до fetchDepth: 0
, но это не сработало.
trigger:
branches:
include:
- '*'
exclude:
- main
pool:
name: 'Default'
demands:
- agent.os -equals Windows_NT # Optional: Ensure it runs on Windows-based agents
steps:
- checkout: self
- task: WindowsMachineFileCopy@2
inputs:
SourcePath: '$(Build.Repository.LocalPath)'
MachineNames: 'SERVER0TST'
AdminUserName: 'ntdomain\user'
AdminPassword: '$(user_password)'
TargetPath: 'c:\inetpub\wwwroot'
@Caleb Я слишком усложняю проблему... Спасибо.
Согласен с @Caleb. Это может быть хорошим выбором для удовлетворения требований. Я думаю, что этот метод стоит добавить к записанному ответу. Мы можем создать дополнительную ветвь для сбора коммитов изменений в ветвях A и B. Мы можем использовать функцию запроса на извлечение в Azure DevOps для сравнения измененных файлов между ветвью A, ветвью B и новой ветвью. В этом случае мы можем вручную контролировать изменения, которые необходимо внедрить, путем слияния PR.
@KevinLu-MSFT Я скопировал свой комментарий (и еще немного) в ответ для потомков. ;-)
Похоже, вам было бы гораздо лучше объединить любые коммиты, которые вы хотите, в одну конкретную ветку, а затем ваш конвейер всегда отслеживал бы эту ветку. Извлечение всех новых коммитов из каждой ветки без перезаписи других изменений завершится неудачно, если изменения в разных ветках происходят в одной и той же части файла.
У меня нет опыта работы с конвейерами Azure, но я предполагаю, что, как и конвейеры Jenkins, они используются для непрерывного тестирования, интеграции и развертывания. В любой из этих ситуаций вам понадобится, чтобы набор коммитов, входящих в сборку, где-то записывался, а не просто собирался из текущего состояния всех ветвей, чтобы в случае возникновения проблемы вы могли легко воспроизвести именно то, что было построено. . Слияние с веткой дает вам эту запись.
Похоже, вам было бы гораздо лучше объединить любые коммиты, которые вы хотите, в одну конкретную ветку, а затем ваш конвейер всегда отслеживал бы эту ветку. Извлечение всех новых коммитов из каждой ветки без перезаписи других изменений завершится неудачно, если изменения в разных ветках происходят в одной и той же части файла.