Добрый день.
Я знаю, что мы должны задавать вопросы, на которые можно ответить, а не просто обсудить, поэтому я постараюсь сделать мой вопрос количественно измеримым, хотя это не совсем так по своей природе.
Я пишу несколько заявок на исследовательский проект в моем университете. У меня есть несколько «основных» проектов, а также несколько веток. Со временем эти ветви становятся все труднее контролировать. В общем, у меня слишком много мест, где я застрял в проектах кода. Я единственный парень, который действительно работает над этими приложениями, но у меня есть некоторые люди, которые могли бы получить выгоду от доступа к коду. Кроме того, я хотел бы очистить проекты для будущего использования, будь то продолжение моей работы после окончания обучения другими, мои собственные проекты вне работы или возможность показать будущим работодателям, каковы мои навыки.
Одним из возможных ответов на эту проблему является программное обеспечение для контроля версий. Я знаю об этом, но я на самом деле не использовал его ... Я проверил один или два проекта из GitHub, но на самом деле никогда не копался в том, что нужно для настройки и эксплуатации такой системы. Кажется, в наши дни существует немало вариантов, как собственных, так и бесплатных.
У меня есть следующие желания для такой системы:
Может работать в системах, которые я контролирую. У меня есть экземпляр Amazon EC2 Micro для некоторых моих работ, так что это было бы единственное место, где я мог бы установить такое программное обеспечение. Мне доступны и другие машины, поэтому я не обязательно ограничен экземпляром Micro, но пока это моя главная цель. Прямо сейчас он запускает копию собственного Linux-образа Amazon, поэтому в идеале управление версиями должно выполняться в Linux. Хотя я хочу, чтобы он размещался на моих собственных системах, я не хочу, чтобы управление ими было полной занятостью ... Сначала я студент и разработчик.
Доступно через Microsoft Visual Studio. Хотя я иногда работаю в других средах, львиная доля моей работы выполняется в C # с Visual Studio 2012. В идеале я мог бы проверять и объединять изменения в IDE.
Хорошо задокументированы. Это должно быть само собой разумеющимся, но мы все были там раньше.
Легко для резервного копирования или передачи. Я не уверен, что именно используется для организации проектов, но было бы неплохо, если бы я мог взять свои проекты и переместить их в другую систему контроля версий, если я выберу. Конечно, так как это рабочие файлы, я должен иметь возможность их резервного копирования.
Каковы ваши предложения относительно программного обеспечения для контроля версий с учетом этих критериев? Я студент, и это более или менее мой личный проект, поэтому, хотя у меня есть доступ к некоторым проприетарным системам практически бесплатно (продукты Microsoft сразу приходят на ум), у меня не так много денег, чтобы потратить в это. В идеале решение бесплатное. Я надеюсь, что способ, которым я структурировал этот вопрос, позволяет получить определенный ответ или набор предложений.