Обнаружение Perforce нераспечатанных измененных файлов

Я пытаюсь выяснить способ обнаружения файлов, которые не открыты для редактирования, но тем не менее были изменены локально. p4 fstat возвращает значение headModTime для любого заданного файла, но это время изменения в депо, которое не должно быть равно файловой системе stat последнему измененному времени.

Я надеюсь, что существует более легкая операция, чем резервное копирование исходного файла, принудительная синхронизация файла, а затем запуск diff. Идеи?

Ответ 1

От: http://answers.perforce.com/articles/KB/3481/?q=disconnected&l=en_US&fs=Search&pn=1

См. конкретный шаг 2:


2. Затем откройте для "редактирования" все измененные файлы:

p4 diff -se //myclient/... | p4 -x - edit

p4 diff -se возвращает имена файлов депо, соответствующий файл-клиент которых каким-либо образом отличается от кликов #have ревизии.

Ответ 2

Этот вопрос SO дает возможность сделать это в графическом интерфейсе P4V:

В версии P4V, выпущенной в январе 2009 года, вы можете щелкнуть правой кнопкой мыши по любой папке в дереве рабочей области и нажать "Сконфигурировать автономную работу..."

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

Вы можете щелкнуть правой кнопкой мыши по файлам в этом представлении и проверить их, добавить их или даже вернуть их.

Позднее EDIT:

В окне "Reconcile..." вы можете нажать "Advanced Reconcile" и получить окно с двумя папками, иерархия папок, что особенно полезно для поиска файлов, которые вам нужно добавить.

PROS: Вся эта функция P4V более удобна для пользователя, чем версия в командной строке (поскольку она позволяет получить максимальную детализацию при выборе согласования)

CONS: крайне тяжело нуждаться в списке subversion/ git/hg .ignore, чтобы избавить вас от необходимости вручную пропускать все DLL и другие трещины в ваших проектах.

Ответ 3

Начиная с Perforce версии 2012.1, используйте команды командной строки p4 status и p4 reconcile

http://www.perforce.com/perforce/r12.2/manuals/cmdref/status.html

Команда p4 status находит неоткрытые файлы в рабочей области клиента и обнаруживает следующие три типа несоответствий между вашей рабочей областью и депо:

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

http://www.perforce.com/perforce/r12.1/manuals/cmdref/reconcile.html

Ответ 4

Из рабочей отсоединенной статьи, используя p4win, вы также можете выбрать папку/файлы, о которых идет речь, и выбрать "файл меню- > больше- > проверить согласованность", в основном это "p4 diff -se" и "p4 diff -sd 'и предложит пользователю устранить несоответствия.