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

Имеет ли SVN эквивалент git commit (без нажатия)?

В принципе, я хочу выполнить свои изменения, не нажимая их и не переключая ветки. Это позволяет мне выполнять некоторую работу, commit, когда я нахожусь в хорошей точке остановки, а затем продолжаю работу в той же ветке. Если я испортил, я могу revert, если я добавлю новые изменения, я могу просто commit снова.

Я понимаю, что могу создать ветку признаков в SVN для отслеживания этих изменений, но опять же, я бы хотел сделать это, оставаясь в той же ветке/туловище. Даже эквивалент git stash был бы достаточным, хотя, похоже, SVN не имеет этой функции.

4b9b3361

Ответ 1

Сама точка управления распределенной версией - это функция локальных коммитов, которые в дальнейшем могут быть объединены с восходящим репозиторием. SVN не распространяется и не может этого сделать. Центральным препятствием является линейная ревизия SVN, которая подразумевает, что каждый клиент должен получить новый идентификационный номер ревизии для каждого набора изменений. Поскольку "выделение" номера версии и последующее использование ее приведет к разным условиям гонки, действия "совершить" и "нажимать" являются атомарными в SVN и каждой нераспределенной системе управления версиями.

Как говорится, git интерфейс SVN - хороший выбор, как предложил Джо. Это гарантирует, что SVN никогда не увидит ваших локальных, индивидуальных коммитов, а "push" будет переведен в единую большую транзакцию SVN.

Ответ 2

По дизайну SVN нет, однако вы можете использовать команду git git svn в качестве интерфейса для SVN. Это позволяет выполнять push/pull работу с удаленного SVN, но по-прежнему использует git локально и, таким образом, выполнять локальные коммиты, не нажимая на SVN-репозиторий.

Что-то вроде этого может помочь: http://www.viget.com/extend/effectively-using-git-with-subversion/

Ответ 3

Возможно, вы сможете использовать лоскутное одеяло для этого, хотя оно начинает становиться сложным, если вы только хотите зафиксировать часть очереди вашего лотка на svn.