Нечетная проблема Синхронизация p4 от Perforce не улавливает изменения - PullRequest
0 голосов
/ 20 сентября 2019

Привет всем. Я отчаянно нуждаюсь в помощи.

У меня странная проблема с моей синхронизацией p4 / ... всегда возвращается

- file(s) up-to-date.

Это начало происходить с перерывами около 2 недель назад,затем медленно прогрессирует до 100%, не работает, т.е. синхронизация p4 не принимает никаких изменений.

Если я запускаю

p4 changes -m5
Enter password: 
User <p4user> logged in.
Change 1523039 on 2019/09/19 by *********************************************online fix read me info'
Change 1523038 on 2019/09/19 by *********************************************config ids to Part'
Change 1523037 on 2019/09/19 by **********************************************pending* 'Created item-definition cache f'
Change 1523036 on 2019/09/19 by ********************************************* '<saved by Perforce> '
Change 1523035 on 2019/09/19 by ********************************************* '<saved by Perforce> '

Запустил синхронизацию p4 / ... и получил файлы на сегодняшний день ответ.

Я выполнил следующие шаги несколько раз

  • cd
  • p4 sync… # 0
  • rm -rf *
  • p4 sync -f…

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

Кстати, я выполнил

export P4CONFIG=~/.p4settings; /bin/p4 login < ~/.p4p; p4 workspace

и проверил представления, все параметры в порядке.

Мой конвейер сборки работал более года.Я заблудился, как решить эту проблему.Любые указатели очень ценятся.

Ответы [ 2 ]

2 голосов
/ 20 сентября 2019

Немного более быстрая альтернатива вашему p4 sync -f обходному пути - p4 clean.Это все еще довольно медленно по сравнению с обычной синхронизацией, так как для этого требуется контрольная сумма всей рабочей области, но это по крайней мере немного быстрее, чем повторная передача всех файлов по сети.

Что касается поиска и исправленияосновная причина, по которой вы можете просто синхронизировать на полной скорости и с полной уверенностью, вот некоторые основные вещи, которые нужно проверить заранее:

  1. Что показывает p4 have как синхронизируемое с рабочим пространством?Версии головные или старые?
  2. Если p4 have показывает, что у вас есть старые ревизии, но p4 sync не хочет их обновлять, отметьте p4 opened - помните, что p4 sync не будет немедленно обновлять открытые файлы (вместо этого будет запланировано resolve, чтобы вы могли объединить изменения)

Я собираюсь исходить из предположения, что p4 have показывает, что у вас уже естьосновные изменения, и проблема не в том, что файлы opened.

  1. Используете ли вы когда-либо p4 sync -k или p4 flush для принудительного обновления списка имущих без обновления рабочей области?Если это так, то ваше рабочее пространство, очевидно, будет непоследовательным;Вы, вероятно, не хотите использовать эти команды.
  2. Используете ли вы одну и ту же спецификацию клиента для синхронизации нескольких машин?Если это так, они имеют общий список, но не физическое рабочее пространство, поэтому машина, на которой вы не выполняли синхронизацию, будет несовместима с этим списком. Не разделяйте клиентскую спецификацию между несколькими рабочими пространствами. Поле Host в клиентской спецификации поможет вам не делать этого, если вы не удалите его или не переопределите P4HOST.

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

0 голосов
/ 21 сентября 2019

Ну, я работал над этим.Не удалось найти решение, поэтому создал новое рабочее пространство и скопировал его в конфиги клиента и представления рабочего пространства.наши сборки снова работают.

...