2009-09-20 2 views
0

Сценарий:Открыть проект Visual Studio, как только для чтения

Я использую SVN: внешние ссылки, чтобы захватить Microsoft.Practices.ServiceLocation из CodePlex. Однако ссылка на файл csproj в моем собственном проекте вызывает обновление с 2005 по 2008 год. Это делает мою копию файла проекта отличной от базовой копии, и я не могу обновить проект из подрывной деятельности.

обновленный ... \ DEPS \ Результаты Microsoft.Practices.ServiceLocation в:

Command   Update 
Tree conflict ...\deps\Microsoft.Practices.ServiceLocation\ServiceLocatorProvider.cs 
Tree conflict ...\deps\Microsoft.Practices.ServiceLocation\ServiceLocatorImplBase.cs 
Tree conflict ...\deps\Microsoft.Practices.ServiceLocation\ServiceLocator.cs 
Tree conflict ...\deps\Microsoft.Practices.ServiceLocation\Readme.txt 
Tree conflict ...\deps\Microsoft.Practices.ServiceLocation\Properties 
Tree conflict ...\deps\Microsoft.Practices.ServiceLocation\Microsoft.Practices.ServiceLocation.csproj 
Tree conflict ...\deps\Microsoft.Practices.ServiceLocation\IServiceLocator.cs 
Tree conflict ...\deps\Microsoft.Practices.ServiceLocation\ActivationException.Desktop.cs 
Tree conflict ...\deps\Microsoft.Practices.ServiceLocation\ActivationException.cs 
Completed  At revision: 43682 
warning!   One or more files are in a conflicted state. 

обновления ... \ DEPS приводит:

Command   Update 
Completed  At revision: 0 

Обновленных из корень приводит к:

Command   Update 
External   ...\deps\Microsoft.Practices.ServiceLocation 
External failed ...\deps\Microsoft.Practices.ServiceLocation 
Error    Working copy '...\deps\Microsoft.Practices.ServiceLocation' locked 
Error    Please execute the 'Cleanup' command. 
Completed   ...\deps\Microsoft.Practices.ServiceLocation - at revision: 0 

Вмешательство, утверждающее, что рабочая копия заблокирована, кажется неправильной, e lock в папке Microsoft.Practices.ServiceLocation приводит сообщение с сообщением «Нет ничего, чтобы разблокировать. Файл не имеет блокировку в этой рабочей копии.»Тот же результат, если я выполнить команду в корне.

Выполнение очистки ничего не изменилось.

Я использую TortoiseSVN.

  1. Могу ли я скажите Visual Studio 2008 рассматривать проект/каталог как только для чтения, чтобы избежать обновления?
  2. Есть ли секретная команда Subversion, которую я могу выполнить, чтобы заставить ее работать?
  3. Почему обновление файлов, которые были изменены, вызывают дерево конфликт

Редактировать: Я искал некоторые из них и нашел документацию Subversion, объясняющую конфликты деревьев в http://svnbook.red-bean.com/nightly/en/svn.tour.treeconflicts.html. Я изменил свой третий вопрос, так как не понимаю, почему я получаю конфликт дерева при обновлении файлов, которые были изменены.

ответ

1

Visual Studio 2008 довольно счастливо откроет решение только для чтения (это обычное, незавершенное использование).

Но VS2008 не может открыть файлы решений VS 2005, поэтому он всегда пытается обновить. Кажется, вы ищете способ открыть решение 2005 года в 2008 году без обновления, и я не думаю, что это возможно.

Либо получите копию VS 2005 (это может быть версия Express), либо обновите проект Codeplex в целом (помните, что VS 2008 будет нацелен на .NET 2.0).

+0

Если бы я должен был установить Visual Studio 2005 (не экспресс), интегрировался бы он в ту же среду и разрешил бы мне открывать проект без обновления? (Как, например, наличие двух «проектных движков» в одном и том же процессе devenv.exe?) – sisve

+0

Я не знаю об интеграции SNV, но каждая бок версия VS имеет свою собственную отдельную конфигурацию (например, с клиентом Team Foundation, там является отдельной клиентской установкой для каждой версии VS). – Richard

2

Существует несколько вариантов в зависимости от того, как вы связаны с проектом, и если вы его измените.

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

При отладке вы можете входить в код библиотеки в VS2008 без фактического открытия файла проекта 2005 года; поэтому обновление не требуется.

Когда мне нужно работать с кодом для библиотеки open source, я открываю его в собственном решении.Если ему нужно обновить vs2008, я позволю ему - это не имеет большого значения, так как меняются только файлы проекта, а не исходный код. Поскольку он находится в исходном управлении, вы всегда можете вернуть файлы проекта в оригиналы или переименовать свои новые копии и сохранить 2 файла csproj рядом.

Я только делаю обновление svn с черепахой в проектах с открытым исходным кодом и не получаю конфликтов. Svn объединит любые изменения в мою копию. Если у меня есть изменения, которые необходимы для проекта с открытым исходным кодом, я отправляю патч и не фиксирую его.

Если это проект, в котором вы являетесь активным разработчиком, а остальные члены команды должны оставаться в VS2005, вы можете без проблем загружать VS2005. У меня было 4-5 копий VS, установленных на одной машине - единственной минутой является дисковое пространство.

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

Смежные вопросы