Репликация возможности ссылки Sourcesafe в SVN или других системах контроля версий?

В настоящее время моя команда использует Visual Sourcesafe, и, будучи очень хорошо знакомой с тем, насколько ужасен графический интерфейс, и слыша интернет-бормотание о том, насколько он ненадежен, я пытался подтолкнуть к переходу на SVN.

Сегодня я разговаривал с менеджером о возможном переходе, который он поддерживает, и он спросил, можно ли создавать ссылки в стиле sourceafe в SVN. Ссылки, для людей, не знакомых с безопасным исходным кодом, концептуально работают так же, как ссылки на файлы в Linux. Мы используем их для связывания общего кода / библиотек между проектами. Я объяснил, что не было возможности создавать ссылки с помощью SVN, и он упомянул, что это может быть основным камнем преткновения при миграции.

Я сказал ему, что в моем локальном SVN (который я держу для облегчения разработки, проверяя только периодически в sourceafe), я размещаю общий код / ​​библиотеки в одном месте и ссылаюсь на ANT в этом месте. Однако у меня возникло ощущение, что это решение не произвело на него особого впечатления, поскольку оно усложняет задачи ANT. Лично я считаю, что стоит иметь немного более сложный сценарий ANT, чем иметь кучу файлов ссылок в системе управления версиями, но на самом деле вопрос в том, на какую парадигму вы подписываетесь.

Мне любопытно, как разработчики в целом обходят это ограничение и используют ли новые системы контроля версий, такие как Git и Mercurial, ссылки на поддержку?


person James McMahon    schedule 02.02.2009    source источник


Ответы (3)


Изучите свойства svn:externals.

person Joel Coehoorn    schedule 02.02.2009
comment
+1 опередил меня. Это хорошо, потому что при необходимости вы можете ссылаться на другие репозитории на других серверах - это довольно мощный инструмент. - person Michael Haren; 02.02.2009
comment
Какие здесь были бы ограничения по сравнению со ссылками? - person James McMahon; 02.02.2009
comment
В основном просто ограничения именования (их нарушают пробелы / точки) и чрезмерно сложный / ручной пользовательский интерфейс. В остальном это почти идентично. - person Joel Coehoorn; 02.02.2009
comment
Да, и они работают на уровне папок, а не файлов. - person Joel Coehoorn; 02.02.2009
comment
Начиная с Subversion 1.6 внешние элементы могут работать на уровне файлов. - person Josh Kelley; 29.11.2010

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

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

person Jim Petkus    schedule 02.02.2009

Ссылки полезны, когда исходные файлы должны совместно использоваться разными платформами (.NET, Silverlight, .NetCF), поскольку исходные файлы могут быть одинаковыми и, следовательно, могут совместно использоваться, но скомпилированные библиотеки не могут совместно использоваться этими платформами.

person Community    schedule 17.03.2009