Не удается добавить файлы в perforce

#perforce

#принудительно

Вопрос:

Насколько я могу судить, мой клиент настроен правильно:

 $ p4 client -o
# A Perforce Client Specification.
# ...

Client: stephen-dev1-stephen

Update: 2014/06/26 17:41:14

Access: 2014/06/26 17:45:47

Owner:  StephenRasku

Host:   stephen-dev1

Description:
    Created by StephenRasku.

Root:   /home/stephen/Code

Options:    noallwrite noclobber nocompress unlocked nomodtime rmdir

SubmitOptions:  submitunchanged

LineEnd:    local

View:
    //depot/labs/products/component/SpamView-URI/... //stephen-dev1-stephen/SpamView-URI/...
    //version/... //stephen-dev1-stephen/version/...
    //thirdparty/... //stephen-dev1-stephen/thirdparty/...
    //starteam/... //stephen-dev1-stephen/starteam/...
    //specs/... //stephen-dev1-stephen/specs/...
    //release/... //stephen-dev1-stephen/release/...
    //projects/... //stephen-dev1-stephen/projects/...
    //main/... //stephen-dev1-stephen/main/...
    //features/... //stephen-dev1-stephen/features/...
    //dev/... //stephen-dev1-stephen/dev/...
    //depot/... //stephen-dev1-stephen/depot/...
  

Файлы существуют:

 $ pwd
/home/stephen/Code/SpamView-URI
$ ls mainline/EBUILD_VERSION mainline/package.sh mainline/ebuild
mainline/ebuild  mainline/EBUILD_VERSION  mainline/package.sh
  

Но он жалуется, когда я пытаюсь их добавить:

 $ p4 add mainline/EBUILD_VERSION mainline/package.sh mainline/ebuild
mainline/EBUILD_VERSION - file(s) not in client view.
mainline/package.sh - file(s) not in client view.
mainline/ebuild - file(s) not in client view.
  

В чем проблема? Я проверил файл, используя git p4 clone , если это имеет значение.

Ответ №1:

Проверьте строки «Просмотр» в спецификации рабочей области клиента, чтобы подтвердить, что спецификация файла, используемая в вашей команде Perforce (или отображаемая в сообщении об ошибке), попадает в представление рабочей области. Например, если вы видите ошибку при попытке добавить файл, возможно, вам захочется проверить сопоставление, чтобы подтвердить, что файл находится в каталоге, который находится в вашем представлении клиента.

См. Раздел «Представление рабочей области клиента»: http://answers.perforce.com/articles/KB_Article/Common-Permissions-and-File-Access-Problems

Находятся ли файлы в этой точной структуре каталогов ниже?

   /home/stephen/Code/SpamView-URI/mainline/EBUILD_VERSION
  /home/stephen/Code/SpamView-URI/mainline/package.sh
  /home/stephen/Code/SpamView-URI/mainline/ebuild
  

Судя по первой строке отображения вида:

   //depot/labs/products/component/SpamView-URI/... //stephen-dev1-stephen/SpamView-URI/...
  

Я бы предположил, что это путь, по которому они должны находиться.
Если вы ‘cd’ в каталог ‘/ home / stephen / Code / SpamView-URI / mainline’
, сможете ли вы добавить эти файлы?

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

1. Кажется, он игнорирует мою SpamView-URI строку сопоставления. Я сделал p4 sync //depot/labs/products/component/SpamView-URI/... , и он проверил код /home/stephen/Code/depot/labs/products/component/SpamView-URI вместо ожидаемого /home/stephen/Code/SpamView-URI . Я переместил свои файлы в раздел ..../Code/depot/.... и добавил их оттуда.

Ответ №2:

Как вы заметили, ваша спецификация клиента неверна. С помощью этих 2 строк,

//depot/labs/products/component/SpamView-URI/... //stephen-dev1-stephen/SpamView-URI/...
//depot/... //stephen-dev1-stephen/depot/...

Вы пытаетесь сопоставить файлы в //depot/labs/products/component/SpamView-URI/… с //stephen-dev1-stephen/SpamView-URI/… и //stephen-dev1-stephen/depot/labs/products/component/SpamView-URI/ … Поскольку принудительное чтение выполняется сверху вниз, оно перезапишет ваше первое сопоставление вторым сопоставлением, в основном удаляя второе сопоставление.

Переместите свой //depot/labs/products/component/SpamView-URI/... //stephen-dev1-stephen/SpamView-URI/... на последнюю строку, и все должно быть в порядке.