Как вернуть отложенный список изменений в другой филиал до Perforce 2013?

Используя Perforce Server 2012.2 / 538478, как я могу удалить файлы из магистрали в другую ветку?

При попытке сделать это, я получаю:

//filename... (not mapped to your workspace view)

В Perforce 2013 я обнаружил, что эта небрежная команда действительно полезна:

p4 unshelve -s <changlist#-with-shelved-files> -S //depot/streamname

Но с версией, которую я использую в настоящее время, я не нашел ничего, чтобы помочь мне с этой проблемой.

Какие-либо предложения?

8 ответов

Решение

К сожалению, без обновления до 2013.1 и получения улучшенной небрежной операции вам потребуется вручную скопировать данные с помощью:

  • небрежный в стволе, отмечая определенные файлы, которые изменились
  • p4 edit файлы в вашем другом потоке / ветке
  • вручную скопируйте файлы без хранения в другой поток / ветку (вы не можете использовать p4 copy или же p4 integrate для этого, потому что они не совершены на стволе
  • проверить и зафиксировать в другой ветке

Другие ответы у меня не сработали, вот что я сделал с помощью Perforce 2014:

  1. Отредактируйте текущее рабочее место так, чтобы в нем отображались и //depot/product/B1/... и //depot/product/B2/... (не друг с другом, с вашим рабочим пространством, как обычные отображения)
  2. В P4V перейдите в "Сопоставления ветвей" (меню "Вид" -> "Сопоставления ветвей")
  3. Ctrl + N, чтобы начать новое сопоставление (или щелкните правой кнопкой мыши список и выберите "New Branch Mapping...")
  4. В разделе "Сопоставление ветвей" укажите имя, например B1_TO_B2.
  5. Замените сопоставления в представлении, например, на

    //depot/product/B1/...       //depot/product/B2/...  
    
  6. Хорошо
  7. Создайте пустой список изменений, в который будут помещены ваши недолговечные файлы (в противном случае они перейдут в список изменений по умолчанию). Номер этого нового списка изменений в приведенной ниже команде будет .
  8. В командной строке запустите

    p4 unshelve -s <SOURCE_CL> -c <TARGET_CL> -b B1_to_B2
    
    • Если это не работает, убедитесь, что в.p4config установлено правильное рабочее пространство
  9. Теперь все, что вам нужно сделать, это разрешить файлы в

Вы смотрите на правильную команду, но, возможно, не правильные параметры. Вот как я это использую:

p4 unshelve -s 77655 -b MY_BRANCH_SPEC

который отменяет список изменений 77655, используя указанную спецификацию ветви для сопоставления файлов с новой веткой.

Критически важно убедиться, что в указанном сопоставлении ветвей и текущем сопоставлении рабочей области содержатся как исходные, так и целевые файлы, в противном случае вы получите ошибку "file not mapped".

Потратив некоторое время на поиск и чтение, я не нашел конкретного примера, чтобы отложить отложенный список изменений в другой ветке. наконец я собрал конкретный пример.

Assuming you have a shelved changelist 324426 in Branch B1 and want to unshelve it to Branch B2.

Я смог создать спецификацию ветки, а затем отменить список изменений в другой ветке. вот именно то, что я сделал:

1. Create a text file named branchSpec.txt, with the content below: set you own Branch name and View.

Branch:   B1_to_B2

View:
//depot/dev/main/B1/...       //depot/release/B2/...

2. p4 branch -i < branchSpec.txt
3. p4 unshelve -s 324426 -b B1_to_B2

Альт, отложенные файлы в списке изменений 324426 в B1 теперь не хранится в B2 и готов к отправке.

Это то, что помогло мне разложить список изменений из одной ветки в другую.

Допустим, у вас есть отложенный список изменений.#112233в исходной ветке:"//depot/release1/main/"которую вы хотите убрать в целевую ветку:"//depot/release2/main/".

  1. Создайте спецификацию ветки в текстовом редакторе:

nano branch-spec.txt

      Branch: R1_to_R2
View:
   //depot/release1/main/... //depot/release2/main/...
 
  1. Создать веткуp4 branch -i < branch-spec.txt

  2. Отложить измененияp4 unshelve -s 112233 -b R1_to_R2

  3. Решатьp4 resolve

Как обойти это в P4 2012:

  1. Вручную скопировать и переписать ветку со стволом
  2. Щелкните правой кнопкой мыши ветку в клиенте P4 и выберите "Согласовать автономную работу..."

Это позволит вам выбрать новые и измененные файлы и добавить их в набор изменений.

Вы можете использовать P4 unshelve для этого, но вы должны создать отображение ветвей, а именно A_to_B.

1] p4 unshelve -s CL_NUM -b A_to_B

2] p4 add (files opened for add)

3] p4 resolve

Примечание: пожалуйста, не забудьте шаг 2. P4 не открывайте их по умолчанию в вашей ветке назначения. Вы можете подтвердить это с помощью "p4 opened"

Я думаю, что вам действительно нужно это "p4 move -f". Это подробно объясняется здесь: p4 move -f: для чего это нужно?

Другие вопросы по тегам