Спектакль Выпуск в Visual Studios 2008 - PullRequest
0 голосов
/ 13 мая 2009

Моя команда использует Visual Studios 2008 для разработки пакетов служб SSIS, и мы используем Perforce в качестве нашей системы контроля версий. Когда пользователь добавляет файл в проект, проект автоматически извлекается БЕЗ проверки, чтобы убедиться, что это текущая версия. Есть ли способ заставить Visual Studios получить последнюю версию файла перед его извлечением?

Обычно мы определяем, что это произошло после того, как файлы пропали без вести в Visual Studios. Вот что обычно происходит:

  1. Пользователь A добавляет файл в проект.
  2. Пользователь A проверяет как проект, так и новый файл.
  3. Пользователь Б проверяет проект, не получив последнюю версию
  4. Пользователь Б добавляет файл.
  5. Пользователь Б проверяет как проект, так и новый файл.
  6. Пользователь A получает последнее определение проекта и замечает, что его файл «отсутствует».

В качестве меры предосторожности я требую, чтобы члены моей команды получили самое последнее определение проекта непосредственно перед добавлением файлов. Несмотря на эту предосторожность, ошибки продолжают происходить, и файлы «исчезают» Хотя мы можем извлечь их из Perforce вручную и добавить обратно в определение проекта, нам вообще не нужно проходить через эту боль. Я знаю, что Perforce может автоматически обнаруживать изменения в файлах. Perforce автоматически сравнит вашу локальную копию с версией сервера и заменит локальную версию, если обнаружит разницу при выборе отмены извлечения. Должен быть способ заставить его проверить, ДО того, как он позволит извлечь файл, как VSS. Грустно, когда мои разработчики говорят мне, что они хотят вернуться к VSS.

1 Ответ

1 голос
/ 13 июня 2009

Это может быть проблема с «общим» клиентом рабочей области, используемым с P4SCC и Visual Studio. Клиенты рабочего пространства должны быть уникальными для каждого пользователя и компьютера - Perforce использует клиент рабочего пространства для отслеживания содержимого рабочего пространства конкретного компьютера.

Вот как это происходит, когда оба пользователя используют один и тот же клиент рабочего пространства:

  • Принудительная синхронизация пользователей A и B с последние изменения с использованием «Стандартный_1» клиент. Есть таблица обновляется на сервере, отмечая, что проект "foo" находится на пересмотре № 12.

  • Пользователь B проверяет "foo", добавляет файл, и подчиняется. Теперь есть таблица обновляется и отмечает, что проект "Foo" находится в редакции № 13 в стандарте_1 рабочее пространство.

  • Пользователь A теперь проверяет проект "foo", добавляет файл и отправляет - без конфликт - как редакция № 14 в стандартное_1 рабочее пространство, потому что Perforce считает, что рабочее пространство уже есть # 13.

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

...