Моя цель - автоматически создать список изменений.Я делаю это, выполняя некоторые команды редактирования и отправляя список изменений в конце последовательности кода.
Я выполняю все свои команды в следующем порядке:
//Open all files in folder for edit in default changelist
p4.run(("edit", Folder + "..."))
//Move all files from default changelist to new changelist
changespec = p4.fetch_change()
changespec["Description"] = "test"
p4.save_change(changespec)
//Get changelist number
ChangeListNum = p4.run(("changes", "-m1", Folder + "..."))[0]['change']
//Run checks on files before submitting
p4.run("reconcile", "-a", "-c", ChangeListNum, Folder + "...")
p4.run("resolve", "-at", "-c", ChangeListNum, Folder + "...")
p4.run("revert", "-a", "-c", ChangeListNum, Folder + "...")
//Submit change list
p4.run("submit", "-c", ChangeListNum, "-f", "revertunchanged")
Теперь,во время моих проверок и отправки мой регистратор сообщает об этой ошибке:
«Изменение #CL_Number уже зафиксировано».
Я уверен, что это связано с микшированием P4Pythonфункции, такие как p4.fetch_change()
и p4.run()
.Я не уверен, как решить эту проблему, но ниже приведено одно решение, которое я попробовал.
Я попытался изменить блок кода:
changespec = p4.fetch_change()
changespec["Description"] = "test"
self.p4.save_change(changespec)
на этот:
p4.run("change", "-i", "<", "P4ChangeList.txt")
Эта команда читает в списке изменений txt, который я сделал, и создает новыйсписок изменений с этими параметрами.Однако он работает только в cmd, а не в команде python.
Спасибо за любую помощь!