Откройте проект Visual Studio как только для чтения - PullRequest
0 голосов
/ 20 сентября 2009

Сценарий:

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

Обновление ... \ 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

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

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 03 октября 2009

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

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

Во время отладки вы можете перейти к коду библиотеки в VS2008, не открывая файл проекта 2005 года; поэтому обновление не требуется.

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

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

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

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

1 голос
/ 20 сентября 2009

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...