VS2008 и ClearCase: открытие решения требует проверки без причины - PullRequest
5 голосов
/ 09 марта 2009

У меня есть небольшая проблема, из-за которой мои автоматические сборки падают.

Когда мы открываем решение, недавно преобразованное из VS2005 в VS2008 VS через запросы ClearCase, мы извлекаем файл решения.

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

Если мы снимаем защиту с файла решения, запускаем VS2008, он создает файл .suo, хорошо, если затем мы снимаем файл .sln (все равно никаких изменений, поэтому VS2008 не замечает) и снова запускаем VS2008 все в порядке - не требует проверки.

В моем скрипте сборки я удаляю все личные файлы просмотра из представления, а затем выполняю обновление с принудительной разблокировкой контролируемых файлов. Затем мы создаем проекты развертывания (и, следовательно, все зависимости), и при удалении файла .suo он каждый раз попадает в поведение файла извлечения .sln.

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

Я мог бы изменить (он же bodge) скрипт сборки, чтобы не удалять файл .suo, но я бы предпочел этого не делать.

edit: разъяснение - файл .suo НЕ регистрируется в ClearClase - это частный файл представления, который создается VS2008, однако для создания этого файла он хочет проверить файл .sln по не реальной причине.

Дальнейшее редактирование:

Я нашел решение этой проблемы - я отключил интеграцию в соответствии с моим последующим сообщением в этой теме.

Ответы [ 4 ]

4 голосов
/ 11 марта 2009

Хорошо, я нашел решение проблемы, и в действительности все было довольно просто.

Я отключил интеграцию Visual Studio ClearCase на сервере сборки.

VS используется для создания проектов развертывания, поэтому мы вызываем devenv, чтобы сделать это за нас. Однако мы используем его только как движок сборки, и движок сборки никогда не должен знать, как изменить исходные элементы, поскольку все они будут получены из ClearCase. Единственные элементы, которые мы позволяем серверу сборки изменять, - это атрибуты номера версии файла сборки в файлах AssemblyInfo, но мы делаем это в NAnt, а не в Visual Studio.

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

1 голос
/ 23 июля 2009

Этот пункт для устранения неполадок помог мне получить этот пакет исправлений, который решил проблему в нашей среде разработки. Мы по-прежнему используем VS2005, но я ожидаю, что это та же проблема, что и в VS2008.

0 голосов
/ 09 марта 2009

Вы могли бы:

  • обновите ваш скрипт, чтобы захватить файл sln в представлении снимка сразу после вашего "cleartool update -force -overwrite".
  • или, чтобы избежать извлечения sln, вы можете попытаться сохранить файл .suo проверенным,

Если вышеупомянутое предложение работает, то есть несколько причин, по которым нужно держать этот файл под контролем версий:

  • Поскольку файл .suo является одноразовым (VS2008 просто создает новый, если он не существует), наличие контроля над исходным кодом может рассматриваться как способ избежать этого создания (следовательно, избежать плагин ClearCase обнаруживает его и пытается «добавить в систему контроля версий» или проверяет его).

  • Другое преимущество наличия .suo файла под контролем версии (но не обновляется при дальнейшей проверке / регистрации) - это , когда вы сравниваете ваш извлеченный проект с другой извлеченной версией того же проект, загруженный в другом месте: этот файл всегда будет идентичным, в отличие от систематически различающихся (поскольку if - это двоичный файл, и любая новая версия двоичного файла будет регистрироваться как другая)

0 голосов
/ 09 марта 2009

Это кажется нормальным для VS2008, он проверяет файл .sln при открытии решения. Мне это тоже не нравится.

Однако ваша проблема заключается в том, что файл .suo также зарегистрирован. Этот файл не должен находиться под контролем исходного кода. Это как файлы proj.user. Я подозреваю, что suo означает «Опции пользователя решения».

...