Mercurial и Visual Studio - PullRequest
       0

Mercurial и Visual Studio

4 голосов
/ 11 января 2011

У меня есть проект visual studio 2010 под управлением mercurial. Я использую Mercurial через командную строку или TortoiseHG. Я хочу работать над новой функцией, поэтому я клонирую репо. Но теперь я в замешательстве. Должен ли я импортировать новый проект в VS2010 только для работы над этой функцией? Я попытался импортировать VS-решение, которое было клонировано, но получило много ошибок сборки из зависимостей. Ошибки не могут быть найдены, что я предполагаю, потому что я пытаюсь загрузить это клонированное решение так же, как оригинальное решение, и некоторые пути неверны хотя).

Как вы должны использовать Mercurial и VS2010?

Ответы [ 4 ]

4 голосов
/ 11 января 2011

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

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

Контроль исходного кода работает наилучшим образом, если вы отметите полное решение, , включая все зависимости :
Создайте папку "Libs" где-нибудь в своем решении, поместите все ваши зависимости внутри, укажите эти файлы из вашего решения и передайте всю папку "Libs" в хранилище .

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

3 голосов
/ 11 января 2011

Похоже, ваша основная проблема в том, что вы добавляете ссылки, используя полные пути, а не относительные пути. Вам нужно будет исправить это, прежде чем ветвление будет легким для вас. Я обычно делаю папку «Ссылки», которая находится на том же уровне папок, что и файл .sln, но на один уровень выше отдельных проектов, а затем разветвляет все это.

Example Folder Structure
    MySolution
      MySolution.sln
      References
      MyProject1
      MyProject2

Что касается интеграции VS, я использую TortoiseHG в сочетании с VisualHG , он прекрасно работает.

Существует также Mercurial Toolbar

Другие инструменты

0 голосов
/ 01 августа 2016

Несмотря на то, что VisualHG все еще оказывается прекрасным инструментом через столько лет, я бы также предложил HgSccPackage в качестве очень жизнеспособной альтернативы для всех версий Visual Studio (до VS2015).

  • PROS : Автономный пакет ( TortoiseHg не требуется).
  • CONS : не обладает всеми удобными функциями TortoiseHg , такими как Поддержка Git (которые я считаю невероятно удобными для работы с GitHub -хостовых проектов) и Mercurial Keyring .

Оба они бесплатны и могут быть установлены через графический интерфейс Visual Studio ( Инструменты > Расширения и обновления ... ).

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

0 голосов
/ 11 января 2011

Это может или не может быть связано, но мне пришлось загрузить исправление KB2286556 , чтобы избавиться от ошибки «Невозможно обновить зависимости проекта» от VS2010 при создании новой проверки нашего код. Похоже, что это случается только с проектами установки и развертывания, когда компиляция вызывается из командной строки (например, в нашей системе сборки), но когда это происходит, очень сложно найти решение.

Также, VisualHg - это хороший способ отслеживать и вызывать управление версиями из Visual Studio.

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