Вопрос относительно структуры каталогов SVN с несколькими ОС

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

Я понимаю, что типичная структура SVN:

/хобот
.... / файлы текущей версии здесь

/ветка
..../Исправлена ​​ошибка
..../Новая функция
.... / branch3
.... / branchN

/тег
.... / версия 1.0
.... / версия 2.0
.... / версия nn

Мой вопрос, как этот фактор в несколько ОС? В настоящее время мое программное обеспечение имеет отдельные репозитории Mercurial для GUI/CLI-версий моего программного обеспечения для каждой ОС, поскольку вы не можете только извлечь каталог в Mercurial. Тем не менее, я понимаю, вы можете в SVN. Будет ли структура выглядеть так:

/ Windows (или Linux, или что-то еще)

/хобот
.... / CLI
..... / файлы текущей версии здесь
.... / GUI
..... / файлы текущей версии здесь

/ветка
.... / CLI
...../Исправлена ​​ошибка
...../Новая функция
..... / branch3
..... / branchN
.... / GUI
...../Исправлена ​​ошибка
...../Новая функция
..... / branch3
..... / branchN

/тег
.... / CLI
..... / версия 1.0
..... / версия 2.0
..... / версия nn
.... / GUI
..... / версия 1.0
..... / версия 2.0
..... / версия nn

Или я делаю это слишком сложным? Вы бы порекомендовали хранить версию GUI в отдельном репозитории? Кроме того, в каких из этих типичных каталогов хранятся предварительно скомпилированные исполняемые файлы?

Я понимаю, что эти вопросы могут показаться новичкам, но правда в том, что я совершенно новичок в SVN. Спасибо за помощь!

1 ответ

Решение

Я использую SVN только около 3 или 4 лет, и то, что у вас есть, выглядит довольно хорошо для меня, я бы не стал хранить версию GUI в отдельном репо. На моей работе все наши проекты находятся в одном репо, просто разные папки, и это работает, потому что, как вы сказали, вы можете проверить, какие папки вы хотите.

Также есть некоторые люди, которые утверждают, что вы не должны хранить двоичные данные (например, предварительно скомпилированные исполняемые файлы) в репозитории SVN просто потому, что это приведет к переполнению репозитория, поскольку его невозможно распространить на предыдущую версию, такую ​​как текст. Это более или менее неписаная политика в моей работе. Дома на моем личном SVN я проверю важные исполняемые файлы или библиотечные файлы, которые, как я знаю, не будут регулярно меняться, просто чтобы они были там, когда они мне нужны. Я не волнуюсь по поводу вздутия, и возможность сделать шаг назад по другой версии exe довольно круто иногда видеть прогрессию.

Что касается веток и тегов, я никогда не использовал их. Я знаю, что, вероятно, должен, но большинство моих проектов в любом случае являются "доказательством концепции", и поэтому мой основной ствол - это действительно все, что я строю. Я в основном использую SVN как очень хороший инструмент для резервного копирования и временной шкалы. Но я должен начать использовать теги и ветки.

Другие вопросы по тегам