Статьи

Subversion — последний поезд

Только что было объявлено, что репозиторий контроля версий исходного кода ядра Rails переходит от Subversion (SVN) к git, и они будут использовать Lighthouse для отслеживания ошибок вместо trac . Это влияет на вас? Не напрямую (если вы не любите играть на рельсах), но это хороший повод поговорить о репозиториях исходного кода и некоторых различиях между subversion и git.

Что такое контроль версий исходного кода?

Хранилища исходного кода предоставляют вам центральное место для хранения вашего кода — они, как правило, делают это, сохраняя при этом историю ваших «фиксаций» (действие по сохранению кода обратно в хранилище). Это означает, что вы можете откатить код любого внесенного вами изменения. Если вы когда-либо слишком усердствовали с помощью команды rm -rf

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

Существует целый ряд систем контроля версий, и Subversion становится одной из самых популярных в последние годы. Хотя в последнее время git, похоже, набирает обороты, особенно среди сообщества Open Source, из-за особенностей локального репозитория. В Subversion, когда вы фиксируете изменение, локальная «рабочая копия» каждого другого пользователя должна была обновляться, чтобы отразить изменения, поэтому, если вы экспериментировали и хотели сохранить версию, но изменения были не совсем готовы для прайм-тайма, вы были немного застряли Git, однако, позволяет вам хранить локальный репозиторий, который не влияет на публичный репозиторий, пока вы явно не скажете это.

Многие из команд, используемых в git, похожи или похожи на SVN (имена могли немного измениться), для краткого ознакомления с этим руководством, и если вы чувствуете себя предприимчивым, вы можете синхронизировать ветку SVN с git, используя git-svn .