У меня есть несколько вопросов контроля версий. Я и еще один веб-разработчик присоединились к компании, которая занялась разработкой программного обеспечения для старых и будущих проектов. Компания не имеет контроля над исходным кодом, так как старые проекты разрабатывались внешними подрядчиками с собственными системами контроля версий. Я хочу одну настройку как можно скорее, но у меня есть несколько вопросов о двух популярных вариантах, на которые я тоже не смог найти ответы, так что это не просто еще одна тема о GitHub против Subversion.
Некоторая справка о проектах, которые будут сохранены. Есть несколько старых проектов, в основном драйвер / прошивка. Мои новые проекты будут больше основаны на .Net / Java, и веб-разработчик захочет хранить контент сайта.
Из того, что я прочитал и попробовал, я предпочитаю Github, но веб-разработчик становится более непреклонным в использовании Subversion. Еще одно соображение, возможно, я на Windows-машине, а веб-разработчик на Mac, поэтому доступные клиенты будут отличаться. Я надеюсь, что мы оба можем использовать один и тот же источник контроля, а не идти разными путями. Первым источником контроля, который я использовал, был сервер Team Foundation, где у нас было одно хранилище и подкаталоги для каждого проекта из корня.
Q1. Что касается GitHub, базовый пакет позволит разместить 10 репозиториев. Учитывая, что уже есть 5 веб-сайтов, дюжина старых программных проектов, 3 новых проекта и еще больше, я чувствую, что мы будем ограничены в количестве проектов, которые мы можем разместить, даже если правок мало, и между проектами становится все меньше , При использовании Git вы, кажется, клонируете / извлекаете весь репозиторий. Буду ли я прав, предполагая, что не может хранить несколько проектов в одном репозитории, просто в разных подкаталогах.
SoftwareRepo / Project1 / Код
SoftwareRepo / Проект2 / Код
SoftwareRepo / Project3 / Код
SoftwareRepo / проекта4 / Код
Или вместо подкаталогов попробуйте использовать ветвление, поэтому у вас есть пустой репозиторий, из которого вы выполняете ветвление, где каждая ветвь содержит контент для каждого отдельного проекта. Недостаток, который я вижу здесь, заключается в том, что при переключении веток (или проектов в моем случае) файлы старого проекта становятся скрытыми в проводнике, пока вы не переключитесь обратно на предыдущую ветвь (предыдущий проект).
Я думаю, что нам нужно большее количество репозиториев и ограничение дискового пространства, которое они используют, поскольку у нас могут быть десятки небольших проектов, которые являются единственными в своем роде и действительно требуют только контроля исходного кода во время активной разработки, а затем несколько крупных проектов, в которых использовались бы такие мощные функции GitHubs, как ветвление.
Для клиентов я обнаружил, что SmartGit очень полезен для управления созданными мной тестовыми репозиториями на фоне командной строки, которую я изначально пытался использовать.
Q2. Если мы используем SubVersion, мы можем разместить его самостоятельно. У меня есть i7 с 6 ГБ оперативной памяти, поэтому мне предложили запустить виртуальную машину, но веб-разработчик недоволен тем, что я, возможно, ухожу из офиса, чтобы сервер subversion отключился, и они также не довольны моей машиной, работающей 24/7, как сервер. У нас есть бизнес-сервер, но сторонний администратор крайне раздражен в работе процессов, поэтому мы не можем использовать и Subversion. Жесткий диск сервера по крайней мере ежедневно копируется. Можно ли хранить файлы репозитория на нашем бизнес-сервере и просто использовать клиенты для доступа к файлам Subversion, или это процесс сервера Subversion, необходимый для доступа клиентов к файлам репозитория. Веб-разработчик рассматривает возможность запуска сервера SVN в облаке Amazon E2C, но у меня нет опыта работы с ним, поэтому я не могу комментировать.
Моя проблема с Subversion заключается в том, что я использовал его раньше, и у меня были очень странные сообщения об ошибках с TortiseSVN, из-за которых я удалял свою извлеченную папку и перезагружал исходный код из хранилища из-за конфликтов (которые, казалось, не существовали), прежде чем я смог проверить любой код.
Если бы у вас было много небольших проектов различных типов, какой клиент управления исходным кодом вы бы выбрали и какой подход вы бы выбрали (онлайн-хостинг, хостинг сами).
Я пытаюсь найти лучшее решение из доступных вариантов.
EDIT
Неутешительно, мы пошли с SVN в конце концов. Не мой личный выбор, но у нас были невероятные трудности при попытке настроить Git на компьютере с Windows и запустить его в качестве сервера. Требуется множество дополнительных установок, настройка SHH и управление через командную строку. Как показано в этом руководстве - http://www.timdavis.com.au/git/setting-up-a-msysgit-server-with-copssh-on-windows/
SVN, с другой стороны, мы использовали VisualSVN Server, указали на сетевой диск для хранения репозиториев, и мы были в пути. Единый установщик и простая в использовании консоль управления.
Если бы Git можно было сделать как единый установщик с графическим интерфейсом управления, мы бы использовали его, так как я думаю, что он более гибкий и надежный, учитывая, что у нас уже есть сообщения об ошибках SVN (поврежденные файлы / файлы не существуют / не выполняются очистка и т. Д.)