Хороший день.
Я знаю, що нам слід задавати питання, на які можна відповісти, а не просто обговорювати, тому я спробую зробити своє питання кількісно зрозумілим, навіть якщо це не зовсім так.
Я кодую кілька заявок на дослідницький проект у своєму університеті. У мене є кілька "головних" проектів, а також деякі, які відгалужуються. З плином часу ці гілки стали важче і важче контролювати. Загалом, у мене занадто багато місць, де я приклеював кодові проекти. Я єдиний хлопець, який справді працює над цими додатками, але у мене є люди, які, безумовно, можуть отримати користь від доступу до коду. Крім того, я хотів би очистити проекти для майбутнього використання, будь то продовження моєї роботи після закінчення інших, мої власні проекти поза роботою, або можливість показати майбутнім роботодавцям, які у мене вміння.
Однією з можливих відповідей на цю проблему є програмне забезпечення для управління версіями. Я знаю про це, але я його не дуже використовував ... Я перевірив проект або два від GitHub, але ніколи насправді не розглядав, що потрібно для створення та роботи такої системи. Здається, в наші дні існує досить багато варіантів, як власні, так і безкоштовні.
У мене є такі бажання для такої системи:
Системи, які я керую, можуть мати хостинг. У мене є деякий екземпляр Amazon EC2 Micro, який працює для моєї роботи, тому це було б одне місце, де я можу встановити таке програмне забезпечення. Інші машини мені також доступні, тому я не обов'язково обмежуюся мікроекземпляром, але наразі це моя головна мета. Зараз на ньому запущена копія власного Linux-зображення Amazon, тому в ідеалі контроль над версіями працює на Linux. Хоча я хочу, щоб він розміщувався в моїх власних системах, я не хочу, щоб управління ними було повноцінною роботою ... Я в першу чергу студент і розробник.
Доступний через Microsoft Visual Studio. Хоча я час від часу працюю в інших середовищах, левова частка моєї роботи виконується в C # on за допомогою Visual Studio 2012. В ідеалі я можу перевірити та об'єднати зміни в IDE.
Добре задокументований. Це само собою зрозуміло, але ми всі були там раніше.
Легке резервне копіювання або передача. Я не впевнений, що саме використовується для організації проектів, але було б добре, якби я міг взяти свої проекти та перемістити їх до іншої системи контролю версій, якщо я вирішу. Звичайно, оскільки це робочі файли, мені потрібно було б створити їх резервну копію.
Які ваші пропозиції щодо програмного забезпечення для управління версіями з урахуванням цих критеріїв? Я студент, і це більш-менш мій особистий проект, тому, хоча я маю доступ до деяких фірмових систем майже нічим не коштувати (продукти Microsoft відразу приходять на розум), у мене немає багато грошей, щоб зануритися в цьому. В ідеалі рішення безкоштовне. Сподіваюся, спосіб, який я структурував це питання, дозволяє отримати певну відповідь або набір пропозицій.