Подтвердить что ты не робот

Svn: локальные коммиты

Subversion: можно ли совершать локальные ревизии, не нажимая их, и нажимать их на более позднюю дату - или это недостаток этой функции, почему она называется "централизованной"?

4b9b3361

Ответ 1

Невозможно выполнить локальные коммиты с Subversion.

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

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

Если вы действительно хотите выполнять локальные коммиты, вы должны взглянуть на SVK, который построен поверх Subversion и предоставляет DVCS как функции.

Ответ 2

Значительная часть из вышеперечисленного несколько устарела, и поскольку этот вопрос появляется в результате поиска в google-поиске для "svn local commit" здесь:

Рассмотрите возможность использования пакета "git -svn" (вместе с "git -gui", если вы не знаете git), чтобы сделать локальные коммиты возможными и легкими, с полной удаленной SVN-интеграцией. Хороший обзор/учебник/прецедент - это здесь. Я только начал использовать этот процесс с проектами Sourceforge, поэтому я пока не могу сообщить о каких-либо проблемах. Обязательно получите файл авторов правильно!

EDIT: обновленная ссылка. Спасибо, hdl!

Ответ 3

Вы можете сделать так, чтобы интерфейс SVN был связан с GIT или Mercurial Bridge. Поскольку GIT и Mercurial могут выполнять локальные коммиты, вы можете использовать их так. Возможно, проверьте git -svn или что-то похожее (я помню, что там был базар-svn, но не уверен).

Ответ 4

Вот почему он называется централизованным. Вы можете попробовать использовать репо внутри репо. Один из них локальный, а другой - удаленный. Затем вы передаете весь внутренний репозиторий удаленному.

Ответ 5

Как говорили другие, нет.

Я бы настоятельно рекомендовал пытаться использовать что-либо удаленно janky с svn.

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

Мы используем SVN на работе. Я использую bzr и bzr-svn для выполнения всего моего взаимодействия, и он работает чудесно. Мой рабочий процесс похож:

$ bzr branch file:///var/svn/project ~/project

(взломать, взломать, взломать)

$ bzr commit -m "commit log" (Повтор)

когда я готов

$ bzr push

Да, вместо обновления у вас есть $ bzr merge и фиксация изменений (возможно, откладывание на то, над чем вы работаете), но локальные коммиты - это очень хорошая вещь, и стеллажи тоже (стеллажи похожи на возврат с сохранением)

Я думаю, что git справляется с этим. Я слышал, что это не так полно, как bzr-svn, но я не могу это подтвердить.

Но использование DVCS с репозиторием svn - хороший способ!

Ответ 6

В дополнение к ответу BobC, для mercurial вы должны использовать hgsubversion.

Ответ 7

Нет! git однако может это сделать, и вы можете использовать git -svn для синхронизировать с исходным репозиторием.

Ответ 8

Чтобы получить лучшее из обоих миров, SVK был построен поверх Subversion, но поддерживал локальное состояние, поэтому вы можете делать локальные совершает...