Как найти неотслеженные файлы в По необходимости дерево? (аналог svn состояния)

У кого-либо есть сценарий или псевдоним для нахождения неотслеженным (действительно: недобавленный) файлы в По необходимости дереве?

Править: Я обновил принятый ответ на этом, так как он похож на P4V добавленная поддержка этого в выпуске в январе 2009.

85
задан Colonel Panic 13 December 2012 в 16:36
поделиться

6 ответов

EDIT: Please use p4 status now. There is no need for jumping through hoops anymore. See @ColonelPanic's answer.

In the Jan 2009 version of P4V, you can right-click on any folder in your workspace tree and click "reconcile offline work..."

This will do a little processing then bring up a split-tree view of files that are not checked out but have differences from the depot version, or not checked in at all. There may even be a few other categories it brings up.

You can right-click on files in this view and check them out, add them, or even revert them.

It's a very handy tool that's saved my ass a few times.

EDIT: ah the question asked about scripts specifically, but I'll leave this answer here just in case.

81
ответ дан 24 November 2019 в 08:16
поделиться

Ahh, один из По необходимости классики:) Да, это действительно сосет это нет ВСЕ ЕЩЕ никакого простого способа к встроенному в команды по умолчанию.

самый легкий путь состоит в том, чтобы выполнить команду, чтобы найти все файлы под Вашим клиентским корнем, и затем попытаться добавить их к складу. Вы закончите с changelist всех новых файлов, и проигнорированы существующие файлы.

, Например, dir/s/b/A-D | p4-x - добавляет

(использование 'находят. - тип f - печатают' из отклонить командной строки).

, Если Вы хотите физический список (в консоли или файле) тогда, можно передать по каналу на результатах разности (или добавить, хотите ли Вы также их в changelist).

при выполнении этого в P4Win можно использовать $r для замены клиентским корнем текущей рабочей области.

12
ответ дан Andrew Grant 24 November 2019 в 08:16
поделиться

Под Unix:

find -type f ! -name '*~' -print0| xargs -0 p4 fstat 2>&1|awk '/no such file/{print $1}'

Это распечатает список файлов, которые не добавляются в Вашем клиенте или По необходимости склад. Я использовал ! -name '*~' для исключения файлов, заканчивающихся ~.

19
ответ дан ahu 24 November 2019 в 08:16
поделиться

На Linux, или если Вам установили инструменты гну на окнах:

find . -type f -print0 | xargs -0 p4 fstat >/dev/null

Это покажет сообщение об ошибке для каждого неучтенного файла. Если Вы хотите получить тот вывод:

find . -type f -print0 | xargs -0 p4 fstat >/dev/null 2>mylogfile
50
ответ дан Mark Harrison 24 November 2019 в 08:16
поделиться

Кроме того, от P4Win, используйте "опцию "Local Files not in Depot", слева просматривают панель.

я не использую P4V очень, но я думаю, что эквивалент должен выбрать, "Скрывают Локальные Файлы Рабочей области" в фильтре, выпадающем из fstat

справки вкладки p4 представления Workspace В P4V 2015.1, Вы найдете эти опции под кнопкой фильтра как это: enter image description here

4
ответ дан Rian Sanderson 24 November 2019 в 08:16
поделиться

Я использую следующее в моем инструменте, который выполняет резервное копирование любых файлов в рабочей области, которые отличаются от репозитория (для Windows). Он обрабатывает некоторые странные случаи, которые Perforce не очень нравятся, например, встроенные пробелы, звездочки, проценты и хэш-метки:

dir /S /B /A-D | sed -e "s/%/%25/g" -e "s/@/%40/g" -e "s/#/%23/g" -e "s/\*/%2A/g" | p4 -x- have 1>NUL:

« dir / S / B / AD » перечисляет все файлы в этой папке или ниже. ( / S ) в «голом» формате ( / B ), исключая каталоги (/ AD ). Команда « sed » изменяет опасные символы на их форму «% xx » (а-ля HTML), а команда « p4 have » проверяет этот список (« -x- ") против того, чтобы сервер отбрасывал что-либо о файлах, которые он фактически размещает в репозитории (" 1> NUL: ").

4
ответ дан 24 November 2019 в 08:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: