ветвление, когда есть ветвь с тем же именем, которое больше не существует p4python - PullRequest
0 голосов
/ 05 апреля 2020

Во время тестирования моего приложения с использованием p4 python я столкнулся с интересной проблемой. Я какое-то время ветвил go из каталога основного потока в каталог тестирования, я сделал откат этого ветвления, так как с ним что-то не так, и ветвь тестирования исчезла (возврат и отправка). После исправления проблемы я решил снова выполнить ветвление с тем же именем, но P4 python сказал Can't populate target path when files already exist. Эта ветвь больше не существует. Я не понимаю, почему p4 python выдаст такую ​​ошибку. Это код, который я использую для ветвления:

result = p4.run("populate", path +"@"+ changelist, destination)

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

1 Ответ

0 голосов
/ 05 апреля 2020

Команда populate работает только для конкретного случая c, когда вы создаете совершенно новую ветку; он не обрабатывает случаи, когда вам может понадобиться разрешить источник относительно цели, поэтому он автоматически завершится ошибкой, если в цели есть любые файлы (даже удаленные).

Если ветвь была только для тестирования, вы можете стереть ее:

p4 obliterate -y destination/...

Или вы можете изменить свой код для учета существующих файлов:

p4.run("integrate", f"{path}@{changelist}", destination)
p4.run("resolve", "-as")
result = p4.run("submit", "-d", 
                f"integrated from {path}@{changelist} to {destination}")
...