p4 согласовывает, и файл становится каталогом

#perforce

#волей-неволей

Вопрос:

Недавно меня это задело, и я хотел бы знать, есть ли какой-то способ обойти проблему, кроме «не делай этого».

У меня был файл P4 «bob» (двоичный), и «bob» был изменен на каталог «bob / …».

Последовательность команд была, по сути:

  1. p4 синхронизирует путь / к/
  2. стереть путь / к/*
  3. скопируйте восходящий /* путь/в/ .
  4. p4 согласовать
  5. p4 отправить

На этом этапе p4 блевает, потому что ‘bob’ изменился из двоичного файла в каталог.

Существует ли другая логическая последовательность для обработки этого случая? Мне очень понравился путь согласования, потому что он очень хорошо справлялся со всеми странными случаями редактирования / удаления / добавления / удаления.

Комментарии:

1. Не делайте этого. В Perforce нет атомарного действия для «изменения файла в каталог» — вам нужно удалить bob, отправить, а затем поместить каталог на его место.

2. @Samwise кажется немного слабым местом, хотя? Это делает автоматизацию закрытых списков изменений практически невозможной без переопределения фрагментов согласования с нуля.

3. На самом деле есть только один очень маленький фрагмент согласования, который необходимо переопределить (я думаю). Если бы вы изменили проверку в этой строке: swarm.workshop.perforce.com/projects/perforce_software-p4/files /… для включения || statVal amp; FSF_DIRECTORY , я полагаю, этого может быть достаточно, чтобы получить желаемое поведение в том, что касается согласования. Я не уверен, что вы не столкнетесь с соответствующими ошибками на стороне сервера, когда перейдете к отправке.