Как мне настроить систему управления исходным кодом для себя?

23

Я программирую на своем рабочем столе в моем офисе, но иногда и дома, в другой комнате на моем ноутбуке, и даже вдали от дома. Что мне нужно, так это система, которая автоматически или по требованию синхронизирует мою работу от одной к другой, при необходимости.

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

Я работаю в .NET (на самом деле Windows Phone 7).

Cyberherbalist
источник
1
используйте dropbox, просто установите его на обе машины и покончите с этим. Его бесплатно (до 2 ГБ). Для вашей ситуации контроль над источниками является чрезмерным (ИМХО).
Темная ночь
26
Контроль исходного кода никогда не бывает чрезмерным (ИМХО)!
Mongus Pong
4
Для установки и запуска Git требуется <15 минут (в зависимости от пропускной способности загрузки).
Mongus Pong
2
установка и запуск Dropbox занимает менее 3 минут (в зависимости от пропускной способности загрузки).
Темная ночь
4
DropBox - ужасное предложение! Это не правильная система контроля версий, она предназначена для обмена данными. У него очень неприятная привычка загружать и выгружать изменения каждый раз, когда вы сохраняете файл и синхронизируете его со всеми другими клиентами в режиме реального времени, он полностью перегружает вашу машину, делая весь этот ненужный сетевой трафик, особенно если вы используете что-то, что создает артефакты. в том же каталоге, что и в DropBox. Изучите и используйте Git или эквивалентный DVCS.

Ответы:

39

Самый простой способ - использовать одну из онлайн-систем. Оформить заказ GitHub или BitBucket . Для получения дополнительной информации о Git или Mercurial, посмотрите Git Reference и Hg Init , соответственно.

Питер Роуэлл
источник
Возможно, если у всех машин есть интернет-соединение, но есть и другие варианты использования. Например, я храню некоторые репозитории subversion на флеш-накопителе USB, а некоторые большие (не исходный код - фотографии и тому подобное) на внешнем жестком диске. Когда я стану счастливее с переходом, у меня также могут быть репозитории Mercurial на USB-накопителях. Одна из причин - я все еще использую Windows XP для многих вещей, но я ни при каких обстоятельствах не разрешу ее (ноутбук или настольный компьютер) в интернете в эти дни.
Steve314
21
Хорошая особенность распределенных систем контроля версий, таких как Git и Mercurial, заключается в том, что вы можете работать с репо локально, а затем синхронизировать его с каким-то центральным сервером, когда у вас есть удобное сетевое соединение. Похоже, идеальное решение для ОП.
Мишель Тилли
@Brandon - также работает для основного репо на внешнем накопителе, когда его подключение все время является проблемой.
Steve314
2
Помните, что BitBucket имеет бесплатные частные репозитории (в отличие от GitHub), что, вероятно, делает его лучшим вариантом для OP.
Кевин Яп
Причина, по которой я не предлагал запускать его локально, заключалась в том, что он не чувствовал, что ему это будет удобно, и сказал, что ему нужен удаленный доступ к нему. Но очевидно, что запуск локально и передача в облачное хранилище - лучший / самый безопасный способ.
Питер Роуэлл
7

Вы можете использовать DVCS, такие как Git или Mercurial, которые могут создавать локальный репозиторий, затем установить Dropbox и поместить папку вашего проекта (включая, конечно, папку репозитория) в папку dropbox.

Dropbox будет обрабатывать синхронизацию и может работать в автономном режиме, если вы изменяете только одно место между синхронизацией.

Кстати, Dropbox не будет предоставлять ваши файлы для публичного доступа по умолчанию, но вы все равно можете открыть их, если хотите.

РЕДАКТИРОВАТЬ

Что касается целостности репозитория в случае, если Dropbox пропустит синхронизацию одного или двух файлов, вы можете создать главный репозиторий вне папки Dropbox на вашем основном ПК и нажать на него. Поэтому, если локальное хранилище в папке Dropbox повреждено, просто восстановите его с основного компьютера. Но я не испытал повреждения хранилища.

Энди Тяхджоно
источник
По сути то, что я делаю. Mercurial репозитории на моем настольном компьютере и ноутбуке, основной репозиторий в Dropbox, который я загружаю и извлекаю из него.
Дэвид Торнли
@ Давид Я делаю все наоборот, основное репо на ПК, рабочее репо в Dropbox, включая файлы с исходным кодом, над которыми я работаю.
Энди Тяхджоно
@Endy Tjahjono: Из вашего комментария звучит так, будто вы работаете на одном компьютере. Иногда я использую свой рабочий стол, а иногда - свой ноутбук, поэтому на самом деле не получается, чтобы мой основной репозиторий был на одном из них.
Дэвид Торнли
@ Давай мою ошибку, я должен был сказать «резервное копирование» на моем главном ПК. Мое «основное» репо - это рабочее репо внутри папки dropbox. Я просто время от времени нажимаю на резервную копию для целей резервного копирования.
Энди Тяхджоно
6

Вот несколько быстрых инструкций о том, как настроить распределенную VCS. Преимущество использования git или mercurial заключается в том, что вам не нужно настраивать сервер, чтобы все это работало, поскольку хранилище - это просто файловая система. У вас есть локальный репозиторий на вашем компьютере рядом с вашим кодом (в git есть одна .gitпапка и в mercurial есть одна .hgпапка в пути проекта).

Используя git

Шаг 1: Загрузите и установите git. Для окон вы можете использовать TortoiseGit . Некоторые замечания по настройке здесь .

Шаг 2: Следуйте книге сообщества git, чтобы инициализировать локальный репозиторий для вашего проекта и зафиксировать репозиторий.

Шаг 3: Чтобы поместить вещи в «облако», которое является github, вы можете следовать этому уроку .

Использование Mercurial

Шаг 1: Загрузите и установите Mercurial. Для окон вы можете использовать TortoiseHg .

Шаг 2. Следуйте краткому руководству, чтобы создать репозиторий для своего проекта и зафиксировать репозиторий.

Шаг 3 Чтобы поместить вещи в «облако», которое является bitbucket, вы можете следовать этому руководству .

Если вы работаете в .NET, возможно, вы захотите использовать Mercurial из-за (вроде) лучшей поддержки в Windows на момент написания.

Spoike
источник
2

Как уже писали @ peter-rowell и другие, самый простой способ - использовать любую из DVCS, такую ​​как Git, и соответствующие онлайн-системы, такие как Github или Unfuddle. Я лично использую Git и Unfuddle.

Поскольку вы упомянули, что подключение к Интернету дома также не является для вас проблемой, существует новая онлайн-среда IDE, которая работает в браузере и работает в облаке. Я не знал, что что-то было доступно раньше, но это выглядит очень интересно и круто. Хотя я этим не особо пользовался, но это круто.

Сайед Аслам
источник
Недееспособность - отличный сервис. В основном это просто копия Redmine с некоторыми приятными настройками.
Кейо
2

Почти любая DVCS поможет.

Наиболее популярными являются Git, Mercurial и несколько других; но мне очень нравится Fossil . Это один (маленький!) Исполняемый файл, легко переносимый, автономный, мультиплатформенный, включающий вики-интерфейс, веб-интерфейс, систему заявок, обработчик документации и т. Д.

Хавьер
источник
1
Bitbucket - сервис, предоставляющий хостинг Mercurial.
Тамас Селеи
Спасибо. я знал это; но имена запутались в моей голове
Хавьер
1

Вариант, который я предложил бы, был бы Печью . Он сделан теми же людьми, что и FogBugz и Stack Exchange. Так что это должно быть довольно хорошо, и это бесплатно для 3 пользователей, я считаю. Масштаб аналогичен FogBugz, и их можно интегрировать, чтобы вы могли отслеживать ошибки и функции.

Точно так же, как Джоэл сказал в одном из своих постов в блоге, отслеживание ошибок и контроль версий всегда являются плюсом, даже для одинокого разработчика.

Блудный маэстро
источник
Ну, это может быть бесплатно для 3 пользователей, но теперь это 25 долларов на пользователя в месяц. Тем не менее, кажется, крутой продукт.
Киберболист
1

Если конфиденциальность вашего кода не так важна, Google Code может стать жизнеспособным решением. Он заботится о хостинге, он бесплатный и довольно простой в настройке. Он поддерживает Subversion, Mercurial и Git, которые все имеют клиентов Windows. Он также интегрируется с Google ID, чтобы вы могли легко добавлять участников в проект. Там я размещаю свои хобби-проекты, используя Mercurial. У меня установлен клиент TortoiseHg как на домашнем, так и на рабочем компьютере, чтобы я мог работать над своими проектами в перерывах.

Система не работает
источник
Ницца! Спасибо за упоминание этого - я еще не слышал о Google Code раньше.
Киберболист
0

Это зависит от ваших знаний о настройке сервера и времени, которое вы готовы потратить.

Лично я арендовал у хостера небольшой виртуальный сервер и установил веб-сервер Apache, интегрированный репозиторий Subversion (который я сейчас конвертирую в git). Настройка на самом деле не так уж много, и как только она будет запущена, вам больше не придется об этом беспокоиться. Преимущество этой настройки заключается в том, что вы можете настраивать не только репозиторий управления версиями, но и другие материалы, к которым вы хотите получить доступ, где бы вы ни находились (например, я установил WIKI и средство отслеживания проблем).

Если это слишком много для вас, вы всегда можете использовать уже предлагаемые онлайн-системы, такие как GitHub.

perdian
источник
0

Возможно, проще всего пойти с провайдером git, у github есть возможность оплатить личный аккаунт.

Но не забывайте о SVN, он прост и удобен в использовании. Вы можете установить svn-сервер где-нибудь, к которому вы можете добраться, возможно, на работе. (И такой проект, как Visual svn server, делает это действительно простым в Windows.) В качестве клиента вы можете использовать либо плагин Visual Studio, либо tortoisesvn.

Единственное, что вам нужно помнить, это то, что вам нужно фиксировать и обновлять при переключении компьютеров.

Johan
источник
Я не думаю, что SVN является правильным ответом здесь. Мне было проще настроить Mercurial, чем SVN, и эта система лучше, чем SVN. SVN бесполезен без прямого подключения к центральному хранилищу, а у OP есть два компьютера, которые, очевидно, не имеют прямой связи.
Дэвид Торнли
Я не уверен, что SVN проще, чем распределенные альтернативы. Но так как он не может достигнуть сервера все время, вы должны быть дисциплинированными, когда хотите перейти. Но шоу одного человека редко делает это так или иначе. И необходимость совершать это, когда вы меняете компьютер, поэтому я согласен, что это не оптимально. Но это альтернатива. Я действительно работал так до того, как начал использовать git. (Но с мерзавцем легче ошибиться).
Йохан
Я предполагаю, что он переносит ноутбук с собой, когда идет на работу, иначе это будет непросто, и Дэвид прав.
Йохан
Время, необходимое для настройки git или Hg repo ( git init), пару секунд. С Subversion вам сначала нужен сервер, который намного сложнее, чем просто запуск git/hg initв вашем каталоге. Я нетерпеливый и ленивый, и Git побуждает меня использовать SCM, потому что он (объединение, инициализация, фиксация) очень быстрый и безболезненный.
Кейо
0

Я использую Beanstalk . Он отлично работал для меня как персональный сервер SVN. У них также есть хостинг Git, но я не пробовал. Для начала у них есть бесплатный аккаунт, а затем вы можете перейти на платный аккаунт, если это необходимо.

RationalGeek
источник
-2

Dropbox

Все остальные решения для ваших нужд являются непревзойденными:

Просто установите Dropbox на обоих компьютерах.

Полный контроль перегорания источника хорошо , но в вашей ситуации его не нужно ИМХО .

Это самый простой и простой путь -> вы просто автоматически синхронизируете папки на любом количестве машин.

Темная ночь
источник
1
Вы можете использовать Git вместе с Dropbox. См stackoverflow.com/questions/1960799/...
Mongus Pong
4
Нет ничего особенного в использовании контроля исходного кода, особенно когда Git и HG так легко настроить. Я не думаю, что имеет значение, что он единственный разработчик, если он пишет производственный код, ему нужен контроль над исходным кодом.
Ричейм
Да, вы, вероятно, правильно. Я просто думаю, что для одного разработчика это просто ненужно и OTT, но, черт возьми, это мое мнение.
Темная ночь
git init, git add ., git commit -m "bla"Это все , что вам нужно знать , чтобы совершить какой - то код. Не сложно, и вы получите часть разума, что вы можете вернуть его. Конечно, преимущества в команде гораздо важнее, но мне нравится иметь возможность перезагружаться назад к моменту времени, это важно. Возможность ветвиться и копить делает меня более продуктивным.
Кейо
Я слышал, что вы говорите, в выпадающем окне его синхронизация в реальном времени, он имеет базовый откат. Да, это ничто по сравнению с полным управлением исходным кодом, но тогда это в значительной степени "огонь и забыть"
Darknight