Вопрос по svn – SVN: местные коммиты

59

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

использовать Git. у него есть эта особенность nightingale2k1

Ваш Ответ

7   ответов
5

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

Вариант этого состоит в том, чтобы "git init" в рабочей копии SVN отключите локальные коммиты. Позже вы фиксируете конечное состояние (или даже промежуточные) в SVN. После этого вы также можете удалить каталог .git. Это означает, что ваша рабочая копия остается рабочей копией SVN, а не git-repo.
2

hgsubversion.

1

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

2

я мог быstrongly Рекомендую пытаться использовать что-нибудь удаленно Janky с SVN.

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

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

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

(hack, hack, hack)

$ bzr commit -m "commit log" (повторение)

когда я буду готов

$ bzr push

Да вместо обновления у тебя$ bzr merge и внесите изменения (возможно, откладывая то, над чем вы работаете), но локальные коммитыvery хорошая вещь, иshelving это тоже (стеллаж какrevert сsave)

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

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

53

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

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

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

Этот ответ немного вводит в заблуждение. Не потому, что SVN централизован, локальные коммиты невозможны. Это просто опущенная деталь реализации. Технически выполнимо обрабатывать локальные коммиты как очередь наборов изменений, которые могут быть отправлены в репозиторий в пакетном режиме (это демонстрирует svk) - это просто изменило бы UX до такой степени, что SVN становится более «сложным». использовать (используя стандартный рабочий процесс). SVN предпочитает оптимизировать простоту использования, а не функциональность; но это может быть взломано в Subversion, не нарушая ничего.
Я ненавижу SVN: / Я обычно использую HG для такого типа локального контроля версий ...
Есть ли у вас опыт работы с SVK? Я использовал это немного, и это казалось нормальным, но я больше не верю в гладкое использование SVN. Я полагаю, что все, что построено на нем, будет таким же шатким.
@jskulski: У меня нет опыта работы с SVK, но у них "antiFUD" адрес страницы вашего вопроса:svk.bestpractical.com/view/SVKAntiFUD
Что если вы создадите локальный сервер на своем компьютере, чтобы вы могли зафиксировать его, а затем, когда вы будете готовы зафиксировать исходный репозиторий, вы просто фиксируете его обычным способом. Это возможно?
35

и, поскольку этот вопрос стал хитом в поиске в Google по запросу «svn local commit» Вот обновление:

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

РЕДАКТИРОВАТЬ: Обновленная ссылка. Спасибо, HDL!

Ссылка была перемещена наgit-scm.com/book/en/v2/…
@thirtythreeforty: Archive.org имеет копию веб-страницы:web.archive.org/web/20130924234957/http://utsl.gen.nz/talks/…
+1 - за отметку избыточности. Я думаю, что я даже где-то читал, что SVN будет вводить локальные коммиты.
Эта ссылка мертва.
Mercurial и Bazaar также могут работать с SVN-репозиториями. Так что изучите их, если вам не нравится интерфейс git.
1

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

Похожие вопросы