В Perforce вы можете переименовать папку с тем же именем, но по-разному?

Можно ли переименовать папку в Perforce из//depot/FooBar/в//depot/Foobar/?

Я пробовал это, переименовывая из//depot/FooBar/в//depot/Temp/to//Depot/Foobar/, но конечный результат заканчивается так же, как//depot/FooBar/.

Ответы

Ответ 1

Как только он находится в Perforce, регистр остается установленным. Как упоминалось Йоханом, вы можете уничтожить, правильно установить имя и добавить его снова. Тем не менее, есть небольшая уловка....

Если кто-либо еще (работает под управлением Windows) уже синхронизировал версию с неправильным расположением, тогда, когда они снова синхронизируют правильную, это не изменит ситуацию на их ПК. Это особенность распознавания файловой системы Windows, но она по-прежнему принципиально независима от случая.

Если несколько пользователей синхронизированы, и их также не очень удобно удалять из-за-клиента (и взрывать папки со своих компьютеров), вы можете прибегнуть к темной и грязной технике Perforce под названием "Контрольная точка" хирургия". Это не для малодушного, но вы это делаете:

  • Остановите свой сервер, возьмите контрольную точку.
  • Используя ваш любимый текстовый редактор, который может обрабатывать файлы с несколькими мегабайтами, выполните поиск и замените все происшествия старого имени с новым. Конечно, вы можете использовать script.
  • Повторите свой файл контрольной точки, чтобы воссоздать метаданные базы данных Perforce.
  • Перезагрузите сервер.

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

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

Ответ 3

Я не уверен в каталогах, но у нас была эта проблема с файлами. Чтобы исправить это, мы должны удалить файл, отправить это изменение, затем p4 добавить файл с правильным случаем и отправить второе изменение. После этого пользователи unix, которые синхронизировали файл с неправильным файлом, должны синхронизировать p4, затем физически удалить файл (потому что p4 не обновит этот случай), а затем p4 sync -f файл.

Наш сервер находится в Windows, так что это может иметь значение.

Ответ 4

Я думаю, что он обрабатывает файлы и папки одинаково.

Для файлов: Это зависит от того, есть ли у вас Windows или Unix-сервер. У нас есть эта проблема с нашим сервером perforce Windows (в каких версиях наш код Java), где иногда кто-то проверяет файл с проблемой case (тогда это вызывает ошибки компиляции, потому что это Java). Единственный способ исправить это - стереть файл и повторно отправить его с правильным случаем.

Ответ 5

Я думаю, вы должны удалить Perforce Cache, чтобы ваша модификация была показана.

Вы можете переименовать с ABC переименовать в abc_TMP, затем abc_TMP переименуйте в abc, затем очистите кеш.

Устанавливает очистку кеша:

  • Откройте домашнюю папку пользователя Windows (в Windows7 == > C:\Users \)
  • Найдите папку с именем ".p4qt"
  • Переименуйте папку в папку "old.p4qt"
  • Запустить Perforce, теперь все работает!

ПРИМЕЧАНИЕ. Эти шаги оставят ваши настройки по умолчанию.

Ответ 6

Вопрос более 3 лет, но я столкнулся с проблемой, подобной этой, делая импорт Subversion в Perforce, и решил, что информация, которую я получил, может быть полезна для некоторых. Это похоже на стирающий метод, но помогает сохранить историю. Вы используете дублируемую команду, которая, возможно, не была доступна тогда, чтобы сохранить историю. Процесс в основном:

  • Дублировать временное местоположение.
  • Уничтожьте местоположение, которое вы просто дублировали.
  • Дубликат из временного местоположения в место переименованного случая.
  • Уничтожить временное местоположение.

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

Кроме того, P4V кэширует пути, которые он показывает в дереве, поэтому после этого он все равно может отображаться как старое имя. однако команда p4 dirs покажет новый случай.