Выполнить неправильно синхронизировать файлы - PullRequest
26 голосов
/ 26 января 2011

Я использую графический инструмент Perforce P4V для взаимодействия с моим сервером Perforce здесь, на работе.У меня есть проект, который я добавил в хранилище, и я случайно удалил его из своего рабочего пространства на своем локальном компьютере, проблема в том, что когда я использую действие Get Revision (эквивалент синхронизации GUI), файлы не обновляются, т.е. я могуувидеть файлы на сервере, который я хочу, но они не будут правильно синхронизироваться с моим локальным ПК.Меня расстраивает, что файлы не извлекаются с сервера.Я предполагаю, что должно произойти, если файлы в любом случае будут изменены на моем локальном ПК, я должен быть в состоянии получить ревизию с сервера, которая затем вытягивает данные на мой локальный ПК и перезаписывает изменения локально на моем ПК,но этого не происходитЯ что-то упускаю?

Ответы [ 7 ]

56 голосов
/ 26 января 2011

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

Чтобы дополнить информацию, если вы когда-нибудь захотите удалить файлы локально, вы можете сделать это через p4v, выбрав пункт «Удалить из рабочей области». Это приведет к удалению файлов локально, а также сообщит перформансу, что у вас больше нет этих файлов, поэтому при следующей синхронизации эти файлы будут извлечены с сервера.

10 голосов
/ 26 января 2011

Они не будут обновляться, потому что в соответствии с Perforce у вас все еще есть файлы на вашем локальном компьютере.

Вам необходимо использовать опцию «Get Revison ...» и включить опцию «Force Operation».

Это заставит Perforce обновить все файлы, даже те, которые, как он думает, у вас установлена ​​последняя версия.

9 голосов
/ 27 марта 2015

Как уже упоминали другие люди, одним из решений является принудительная синхронизация всего хранилища, которое в основном переписывает все с сервера на ваш локальный компьютер.Недостатком этого является то, что может потребоваться ДОЛГОЕ время, чтобы закончить, если вы работаете на большом складе.

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

p4 diff -sd //Depot/path/… | p4 -x – sync -f

-Параметр sd : Показать только имена неоткрытых файлов, которые отсутствуют в рабочей области клиента, но присутствуют в хранилище.

Есть дополнительные параметры (sa / se / и т.не то, что вам нужно.см. здесь .

Кредиты за команду отправляются в этот блог.

8 голосов
/ 27 января 2011

«Получить редакцию» будет обновлять только те файлы, которые не открыты (извлечены), даже если включена «Принудительная операция».Вы должны вернуть все файлы, помеченные как извлеченные в этом рабочем пространстве, а затем использовать «Получить редакцию» с «Принудительная операция»

2 голосов
/ 26 января 2011

Спасибо, ребята, я сделал, как вы предложили, но я продолжал получать сообщение о том, что файлы по-прежнему «открыты для редактирования и не могут быть удалены» при попытке «Удалить из рабочей области».Также «Get Revision» вернулось с сообщением, что «файлы не были обновлены».В итоге мне пришлось «вернуть» файлы, а затем выполнить действие «Получить ревизию», которое решило проблему.Спасибо вам обоим за помощь.

0 голосов
/ 26 июля 2018

Для людей, сталкивающихся с этим вопросом, у меня это работало в командной строке Mac ...

cd в ваше локальное рабочее пространство Perforce - базовый каталог извлеченных файлов, с которыми вы работаете

p4 sync -f

-f - принудительная синхронизация.

Это также может пригодиться при восстановлении Mac из резервной копии машины времени.

https://www.perforce.com/perforce/r12.1/manuals/cmdref/sync.html

0 голосов
/ 11 марта 2016

Проверьте файл, измените его немного, а затем вернитесь. Perforce заменит локальный файл последней версией.

...