Как найти неотслеживаемые файлы в дереве Perforce? (аналог статуса svn)
У кого-нибудь есть скрипт или псевдоним 9X_p4 для поиска неотслеживаемых (на самом деле: не 9X_perforce добавленных) файлов в дереве Perforce?
РЕДАКТИРОВАТЬ: я 9X_sccs обновил принятый ответ на этот вопрос, так 9X_version-control как похоже, что P4V добавил поддержку этого 9X_source-code-control в выпуске за январь 2009 года.
- Я восстановил http://stackoverflow.com/questions/9642531/what-is-the-p4-command-equivalent-to-something-like-svn-status, который был неправильно помечен как дубликат http: // stackoverflow. c ...
Ответ #1
Ответ на вопрос: Как найти неотслеживаемые файлы в дереве Perforce? (аналог статуса svn)
ИЗМЕНИТЬ: Пожалуйста, используйте p4 status
сейчас. Больше 9X_source-code-management нет необходимости прыгать через обручи. См. answer от 9X_sccs @ ColonelPanic.
В версии P4V от января 2009 9X_scc г. вы можете щелкнуть правой кнопкой мыши 9X_source-code-management любую папку в дереве рабочего пространства 9X_sccs и выбрать «согласовать автономную работу 9X_p4 ...»
При этом будет произведена небольшая 9X_source-control обработка, а затем отобразится разделенное 9X_scm дерево файлов, которые не были извлечены, но 9X_p4 имеют отличия от депо-версии или вообще 9X_version-control не зарегистрированы. Может даже быть несколько 9X_source-control других категорий, которые он поднимает.
Вы 9X_scc можете щелкнуть правой кнопкой мыши файлы 9X_scm в этом представлении и проверить их, добавить 9X_scc или даже отменить.
Это очень удобный инструмент, который 9X_version-control несколько раз спасал меня.
РЕДАКТИРОВАТЬ: вопрос, заданный 9X_source-code-control конкретно о скриптах, но я оставлю здесь 9X_vcs этот ответ на всякий случай.
- Ох, за то, что громко кричал !!!! `p4 status` не просто НАХОДИТ неотслеживаемые файлы, он фактически НАЧИНАЕТ ИХ ОТСЛЕЖИВАНИЕ. Т.е. `p4 status` не является запросом только для чтения, как можно было бы догадат ...
Ответ #2
Ответ на вопрос: Как найти неотслеживаемые файлы в дереве Perforce? (аналог статуса svn)
В Linux или если у вас установлены инструменты 9X_source-code-management gnu в Windows:
find . -type f -print0 | xargs -0 p4 fstat >/dev/null
Это покажет сообщение об ошибке 9X_source-code-control для каждого неучтенного файла. Если вы хотите 9X_vcs зафиксировать этот вывод:
find . -type f -print0 | xargs -0 p4 fstat >/dev/null 2>mylogfile
- Перенаправление stderr на stdout позволит вам выполнять дополнительную фильтрацию или другие операции. Например, чтобы увидеть прокручиваемый список файлов Java: найти. -тип f -print0 | xargs -0 p4 fstat 2> & ...
Ответ #3
Ответ на вопрос: Как найти неотслеживаемые файлы в дереве Perforce? (аналог статуса svn)
В Unix:
find -type f ! -name '*~' -print0| xargs -0 p4 fstat 2>&1|awk '/no such file/{print $1}'
Будет распечатан список файлов, которые 9X_perforce не добавлены в ваш клиент или хранилище 9X_scc Perforce. Я использовал ! -name '*~'
для исключения 9X_scm файлов, оканчивающихся на ~.
Ответ #4
Ответ на вопрос: Как найти неотслеживаемые файлы в дереве Perforce? (аналог статуса svn)
Ааа, один из классиков Perforce :) Да, это 9X_source-code-control действительно отстой, что для этого ПО-ПРЕЖНЕМУ 9X_vcs нет простого способа, встроенного в команды 9X_sccs по умолчанию.
Самый простой способ — запустить 9X_scc команду, чтобы найти все файлы в корневом 9X_source-code-management каталоге ваших клиентов, а затем попытаться 9X_version-control добавить их в хранилище. Вы получите список 9X_perforce изменений всех новых файлов, а существующие 9X_source-code-management файлы игнорируются.
Например, директор /s 9X_sccs /b /AD | p4 -x - добавить
(используйте «find 9X_source-code-management . -type f -print» из командной строки nix).
Если 9X_perforce вам нужен физический список (в консоли или 9X_sccs в файле), вы можете передать результаты 9X_p4 сравнения (или добавить, если вы также хотите, чтобы 9X_scm они были в списке изменений).
Если вы используете 9X_revision-control это в P4Win, вы можете использовать $r для 9X_version-control замены корневого каталога клиента текущей 9X_source-control рабочей области.
Ответ #5
Ответ на вопрос: Как найти неотслеживаемые файлы в дереве Perforce? (аналог статуса svn)
Есть ли аналог
svn status
илиgit status
?Да, НО.
Начиная с версии Perforce 9X_source-control 2012.1, есть команда
p4 status
, а в P4V - согласование 9X_vcs автономной работы. Однако они оба очень 9X_source-code-control медленные. Чтобы исключить ненужные файлы, вам 9X_revision-control нужно написать файлp4ignore.txt
для https://stackoverflow.com/a/13126496/284795
- Со времени выпуска 2012.1 было несколько улучшений производительности в `p4 status`. Если вы избегали `p4 status` из-за проблем с произ ...
Ответ #6
Ответ на вопрос: Как найти неотслеживаемые файлы в дереве Perforce? (аналог статуса svn)
2021-07-16: ЭТОТ ОТВЕТ МОЖЕТ БЫТЬ УСТАРЕЛ.
Я достаточно уверен, что это было верно 9X_vcs в 2016 году для той версии Perforce, которую 9X_perforce я использовал (которая не обязательно была 9X_vcs самой последней). Но похоже, что эта проблема 9X_source-control или ограничение дизайна были устранены в 9X_source-control последующих выпусках Perforce. Я не знаю, каков 9X_source-code-control этикет для этого случая переполнения стека 9X_perforce - следует ли удалить этот ответ?
ОТВЕТ 2016 г.
Мне хочется 9X_source-control добавить ответ, поскольку принятый ответ 9X_p4 и некоторые другие имеют, на мой взгляд, серьезную 9X_p4 проблему: они не понимают разницы между 9X_p4 командой запроса, доступной только для чтения, и 9X_source-code-control командой, которая делает изменения.
Я не 9X_source-code-control жду никакого уважения к этому ответу, но 9X_version-control надеюсь, что он поможет другим не тратить 9X_revision-control время и делать ошибки, следуя принятому, но 9X_version-control ИМХО неверному ответу.
--- + КРАТКО
Вероятно, самый удобный 9X_source-code-control способ найти все неотслеживаемые файлы в 9X_revision-control специальной рабочей области - это p4 reconcile -na
.
-a
говорит: «Дайте 9X_source-code-control мне файлы, которых нет в репозитории, т.е. которые 9X_perforce должны быть добавлены».
-n
говорит: «Не вносить 9X_version-control изменений», т. е. пробный прогон. (Хотя 9X_version-control в сообщениях может быть сказано «открыто 9X_scc для добавления», мысленно вы должны интерпретировать 9X_scm это как «было бы открыто для добавления, если 9X_revision-control не -n»)
Вероятно, самый удобный способ найти 9X_version-control все локальные изменения, сделанные в автономном 9X_scc режиме - не только файлы, которые, возможно, потребуется 9X_vcs добавить, но также файлы, которые, возможно, потребуется 9X_scc удалить, или которые были изменены без открытия 9X_p4 для редактирования с помощью p4 edit
, это p4 reconcile -n
.
В нескольких 9X_scm ответах содержались сценарии, часто с участием 9X_scm p4 fstat
. Хотя я не проверял все эти сценарии, я 9X_p4 часто использую аналогичные сценарии, чтобы 9X_perforce восполнить недостатки команд perforce, таких 9X_source-code-management как p4 reconcile -n
- например, часто я обнаруживаю, что 9X_perforce мне нужны локальные пути, а не пути к хранилищу 9X_p4 Perforce или пути к рабочему пространству.
--- + ВНИМАНИЕ
p4 status
НЕ 9X_perforce является аналогом команд статуса в других 9X_version-control системах контроля версий.
p4 status
НЕ является запросом 9X_version-control только для чтения. p4 status
фактически находит такие 9X_scc же изменения, что и p4 reconcile
, и добавляет их в репозиторий. p4 status
, похоже, не 9X_source-code-control имеет опции -n
для пробного прогона, как у 9X_source-control p4 reconcile
.
Если вы выполните p4 status
, посмотрите на файлы 9X_vcs и подумаете: «О, они мне не нужны», тогда 9X_scm вам придется p4 revert
их, если вы хотите продолжить 9X_version-control редактирование в той же рабочей области. В 9X_source-control противном случае изменения, которые p4 status
добавил 9X_source-control в ваш набор изменений, будут проверены в 9X_source-control следующий раз.
Кажется, мало или совсем нет 9X_version-control причин использовать p4 status
вместо p4 reconcile -n
, за исключением 9X_scc некоторых деталей о локальной рабочей области 9X_scm и имени пути к хранилищу.
Я могу только представить, что 9X_version-control тот, кто выбрал «статус» для команды, не 9X_version-control предназначенной только для чтения, имел 9X_revision-control ограниченное владение английским языком 9X_scm и другими инструментами управления версиями.
--- + P4V
графический интерфейс
В 9X_version-control графическом интерфейсе p4v
команда согласования 9X_p4 находит локальные изменения, которые, возможно, потребуется 9X_p4 добавить, удалить или открыть для редактирования. К 9X_scc счастью, он не добавляет их в список изменений 9X_scc по умолчанию; но вы все равно можете быть 9X_revision-control осторожны, чтобы закрыть окно согласования 9X_scm после его проверки, если вы не хотите фиксировать 9X_perforce изменения.
- Статус p4, похоже, не добавляет файлы. похоже, он работает как и задокументирован как «согласова ...
Ответ #7
Ответ на вопрос: Как найти неотслеживаемые файлы в дереве Perforce? (аналог статуса svn)
В качестве альтернативы P4Win используйте 9X_source-control параметр «Локальные файлы не в хранилище» на 9X_revision-control левой панели просмотра.
Я редко использую 9X_vcs P4V, но я думаю, что это эквивалентно выбору 9X_version-control «Скрыть локальные файлы рабочей области» в 9X_version-control раскрывающемся списке фильтров на вкладке 9X_source-code-control «Представление рабочей области». p4 help 9X_p4 fstat
В P4V 2015.1 вы найдете эти параметры 9X_sccs под кнопкой фильтра следующим образом:
Ответ #8
Ответ на вопрос: Как найти неотслеживаемые файлы в дереве Perforce? (аналог статуса svn)
Я использую в своем инструменте следующее, которое 9X_perforce создает резервную копию любых файлов в рабочей 9X_version-control области, которые отличаются от репозитория 9X_vcs (для Windows). Он обрабатывает некоторые 9X_scm странные случаи, которые не очень нравятся 9X_source-code-control Perforce, такие как встроенные пробелы, звездочки, проценты 9X_scc и решётки:
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» перечисляет все файлы в этой 9X_sccs папке или ниже (/S) в «голом» формате (/B), за 9X_source-control исключением каталогов (/A-D). Команда «sed» изменяет 9X_scm опасные символы на их форму «%xx» (а-ля HTML), а 9X_source-control команда «p4 have» проверяет этот список («-x-») на 9X_p4 предмет того, что сервер ничего не отбрасывает. о 9X_perforce файлах, которые он фактически находит в 9X_source-code-management репозитории («1>NUL:»). В результате получается 9X_perforce набор строк типа:
Z:\No_Backup\Workspaces\full\depot\Projects\Archerfish\Portal\Main\admin\html\images\nav\navxx_background.gif - file(s) not on client.
И вуаля!
Ответ #9
Ответ на вопрос: Как найти неотслеживаемые файлы в дереве Perforce? (аналог статуса svn)
Быстро и грязно: в p4v щелкните правой кнопкой 9X_version-control мыши папку, о которой идет речь, и добавьте 9X_version-control все файлы под ней в новый список изменений. Список 9X_version-control изменений теперь будет содержать все файлы, которые 9X_source-code-control в настоящее время не являются частью хранилища.
Ответ #10
Ответ на вопрос: Как найти неотслеживаемые файлы в дереве Perforce? (аналог статуса svn)
Следующие команды производят вывод, похожий 9X_perforce на статус, но ни одна из них не является 9X_source-code-management полностью эквивалентной svn status
или git status
, предоставляя 9X_sccs однострочную сводку статуса каждого файла:
-
p4 status
-
p4 opened
-
p4 diff -ds
-
8
-
6
-
4
-
4
-
3
-
2
-
4
-
4
-
1
-
1
-
2
-
9
-
6
-
7
-
2
-
12
-
7
-
3
-
5
-
5
-
8
-
3
-
5
-
5
-
3
-
6
-
1
-
6
-
4
-
7
-
2
-
6
-
2
-
4
-
3
-
3
-
7
-
5
-
4
-
3
-
3
-
8
-
3
-
4
-
3
-
3
-
4
-
3
-
3
-
6