#perforce
#волей-неволей
Вопрос:
Недавно меня это задело, и я хотел бы знать, есть ли какой-то способ обойти проблему, кроме «не делай этого».
У меня был файл P4 «bob» (двоичный), и «bob» был изменен на каталог «bob / …».
Последовательность команд была, по сути:
- p4 синхронизирует путь / к/
- стереть путь / к/*
- скопируйте восходящий /* путь/в/ .
- p4 согласовать
- p4 отправить
На этом этапе p4 блевает, потому что ‘bob’ изменился из двоичного файла в каталог.
Существует ли другая логическая последовательность для обработки этого случая? Мне очень понравился путь согласования, потому что он очень хорошо справлялся со всеми странными случаями редактирования / удаления / добавления / удаления.
Комментарии:
1. Не делайте этого. В Perforce нет атомарного действия для «изменения файла в каталог» — вам нужно удалить bob, отправить, а затем поместить каталог на его место.
2. @Samwise кажется немного слабым местом, хотя? Это делает автоматизацию закрытых списков изменений практически невозможной без переопределения фрагментов согласования с нуля.
3. На самом деле есть только один очень маленький фрагмент согласования, который необходимо переопределить (я думаю). Если бы вы изменили проверку в этой строке: swarm.workshop.perforce.com/projects/perforce_software-p4/files /… для включения
|| statVal amp; FSF_DIRECTORY
, я полагаю, этого может быть достаточно, чтобы получить желаемое поведение в том, что касается согласования. Я не уверен, что вы не столкнетесь с соответствующими ошибками на стороне сервера, когда перейдете к отправке.