АнхСВН - управляющий ВС * проектами * не * решениями * - PullRequest
1 голос
/ 01 декабря 2011

Я работаю над несколькими различными программными проектами, и я начал создавать некоторые общие библиотеки с утилитарными функциями, которые я использую во всех них.Недавно у меня было три или четыре проекта, выполняемых одновременно в разных физических местах, и стало больно синхронизировать библиотеки вручную.

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

Поскольку я работаю в Visual Studio 2010, я пошел с AnkhSVN.К моему ужасу, кажется, что вы не можете управлять только проектами в рамках решения - только всем решением!

Я иду по инструкциям здесь ;они довольно понятныСуществует небольшая путаница в том, что SVN-проект, по-видимому, не является проектом Visual Studio.

Поэтому я выбираю проект в обозревателе решений, щелкаю по нему правой кнопкой мыши и выбираю «Добавить выбранные проекты».в Subversion ... ".Во всплывающем окне используется имя решение для поля с названием «имя проекта».Это признак проблемы, но я могу вручную изменить его на фактическое имя project .Затем я могу выбрать репозиторий и создать папку для этого проекта .Пока все хорошо.

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

Фактически, если я выберу «Добавить»Решение для Subversion ... "Я получаю идентичное окно.

Я хочу, чтобы Subversion управляла только определенными проектами в рамках решения.Благодаря локальным решениям я делаю библиотеки универсальными;вместо того, чтобы просто ссылаться на сборку, я добавляю весь источник к каждому решению, чтобы изменения были «глобальными».Теперь мне нужно сделать это для решений в физически разных местах, и, очевидно, AnkhSVN не позволит мне сделать это?Это сломано или это по замыслу?

Ответы [ 3 ]

1 голос
/ 04 февраля 2012

Не существует «стандартного» способа предоставления пользовательского интерфейса для решения этой ситуации, но если вы просто извлекаете свои рабочие копии и сводите все проекты в единый макет, AnkhSVN просто предоставит все инструменты для работы над этим проектом.

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

Обходным решением для некоторых проектов может быть создание родительской рабочей копии с внешними элементами (svn:externals) указывая на отдельные проекты.В этом случае при проверке корневого проекта автоматически появятся другие проекты.

0 голосов
/ 18 сентября 2012

Вы можете действовать следующим образом.

Прежде чем принимать решение со всеми проектами, выполните шаги.

  1. Для каждого проекта добавьте их отдельно в SVN (каждый проект со своим собственнымструктура каталогов в svn)
  2. Создать решение
  3. Добавить каждый желаемый проект в решение.

Таким образом, вы можете фиксировать изменения только в желаемом проекте, и коммитыне связывать с решением.

Позже вы можете легко отделить проекты от решения (удалить, перейти к другим решениям и т. д.).

0 голосов
/ 04 декабря 2011

Похоже, это известно с 2008 года, и разработчики не считают, что это достаточно важный вопрос.

http://ankhsvn.open.collab.net/ds/viewMessage.do?dsForumId=582&dsMessageId=152095

...