Контроль версий, чтобы согласовать с собой - PullRequest
7 голосов
/ 02 февраля 2009

Для программирования в свободное время у меня есть и настольный компьютер, и ноутбук (оба Mac, хотя я сомневаюсь, что это меняет вопрос). У меня есть VMware на обоих из них, с образами Linux для запуска моего кода. Это идентичные изображения, поэтому у меня в обоих местах одинаковая среда.

Хитрость в том, что мне нравится использовать контроль версий для ВСЕГО моего кодирования, даже когда я не координирую с кем-то еще. Я хочу увидеть самую свежую версию своего кода на любой системе, которую я использую.

Я не хочу зависеть от постоянного доступа к сети - возможно, я где-то кодирую без Wi-Fi (да, это редко, но некоторые места все еще находятся в каменном веке). Я смотрю на использование git, но что-то вроде SVN также подойдет, если бы хранилище было доступно локально. Или, возможно, ноутбук становится сервером SVN, а рабочий стол обращается к нему.

Кто-нибудь делал подобные вещи раньше? Какие-нибудь ловушки / подводные камни / извлеченные уроки?

Ответы [ 8 ]

7 голосов
/ 02 февраля 2009

Ну, я бы определенно рекомендовал смотреть на распределенную систему вместо Subversion. Это удовлетворит ваше требование не зависеть от доступа к сети и, вероятно, просто лучше подходит для вашего рабочего процесса. Основные варианты для распределенной VCS: git , Mercurial (также называемый "hg") и Bazaar (или "bzr"). Мое личное предпочтение - Mercurial, но все они довольно сопоставимы.

Однако, одна вещь, которую Mercurial имеет над другими (и это было бы очень полезно в вашей ситуации), это команда "hg serve". Вы можете прочитать об этом здесь: Неофициальный обмен с "hg serve" . По сути, он устанавливает очень простой (временный) сервер, позволяющий перенести ваш репозиторий по сети. Я использую это все время для синхронизации кода между моим рабочим столом и ноутбуком. Если я внес некоторые изменения на ноутбуке, я просто запускаю «hg serve», а затем «hg pull» с рабочего стола или наоборот, если я работал на рабочем столе.

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

7 голосов
/ 02 февраля 2009

Я очень рекомендую git, если у вас не будет доступа к сети постоянно.

Однако, если вам все еще нужно работать с хранилищами Subversion, вы все равно можете получить лучшее из обоих миров, используя git-svn .

2 голосов
/ 02 февраля 2009

Что бы вы ни делали, регулярно создавайте резервные копии вашего хранилища. Это особенно верно, если на вашем ноутбуке находится ваше хранилище. Вы также можете подумать о том, что произойдет, если ваш ноутбук будет украден. Возможно, лучше использовать git и оставить репозиторий на рабочем столе.

1 голос
/ 02 февраля 2009

Если вы после простоты (настройка), SVN в порядке. Он работает без подключения к сети, потому что вся ваша история хранится на каждом синхронизируемом ПК, а SVN + SSH ТРИВАЛЬНО для настройки. Он использует встроенную возможность SSH для запуска программы, поэтому, если у вас настроен сервер SSH, вы просто создаете репозиторий, и все работает .. никаких настроек сервера вообще.

Это также может служить резервной копией, поскольку у вас есть весь репозиторий на каждом компьютере, с которым вы синхронизируете.

Распределенные системы контроля версий также интересны, но я думаю, что первоначальные инвестиции выше, но у них есть преимущество, которое вы можете сохранить в своем хранилище без подключения (не слишком критично, если вы работаете в одиночку, но имея возможность контрольной точки и откат в любом месте может иметь свои преимущества).

1 голос
/ 02 февраля 2009

В качестве альтернативы Git, о котором уже упоминалось, я настоятельно рекомендую Bazaar . Это распределенная VCS, как и git, с некоторыми отличиями.

Для (несколько предвзятого, конечно) сравнения, посмотрите эту страницу .

0 голосов
/ 02 февраля 2009

Мой любимый VCS - Даркс , так как он поддерживает выбор вишни патча. Это распределенная VCS, и она ОЧЕНЬ проста в использовании.

0 голосов
/ 02 февраля 2009

Вы могли бы рассмотреть возможность получения хоста SVN - они достаточно доступны и избавляют от головной боли от необходимости иметь дело с собственным сетевым подключением:

http://www.google.com/search?hl=en&q=svn+hosting&btnG=Google+Search&aq=f&oq=

0 голосов
/ 02 февраля 2009

SVN становится довольно неудобным для использования, когда у вас нет доступа к хранилищу. Так как я делаю всю свою разработку на одном компьютере, я хорошо справился с SVN, но вам может показаться, что это не так просто. Из того, что я слышал, это именно та проблема, для решения которой предназначен git - он позволяет вам делать коммиты, зарегистрированные в вашей локальной копии, а затем загружать их все в хранилище, когда вы получаете к нему доступ. *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...