SVN коммит это ВСЕ или НЕТ? - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь удалить ветку, используя svn rm local , а затем commit . Во время commit я был на высшем уровне проекта. поэтому команда commit также пыталась зафиксировать другие изменения в других ветвях , а это не то, что мне нужно . К счастью, коммит не удался в середине. но некоторые другие изменения были отправлены в хранилище. Мой вопрос: означает ли это, что на самом деле к хранилищу не было применено никаких изменений?

1 Ответ

1 голос
/ 28 апреля 2020

SVN коммит - ВСЕ или НЕТ?

Да, это все или ничего. Это называется атомарность .

Коммиты Subversion имеют атомы c и последовательны. Случай, который вы описываете, не возможен в Subversion по замыслу. Коммит либо успешен, либо нет. Даже если ваша транзакция была зафиксирована и привела к созданию новой ревизии, вы всегда можете вернуться к предыдущей ревизии.

Мой вопрос: означает ли это, что на самом деле к хранилищу не было применено никаких изменений?

Да, если фиксация не удалась в середине (например, из-за проблем с сетью) или была отменена пользователем, в репозитории нет новой ревизии.

I я пытаюсь удалить ветку с помощью svn rm local, а затем зафиксировать. Во время принятия я был на верхнем уровне проекта.

  1. Удалить ветку, передав URL-адрес, это намного проще и помогает избежать внесения несущественных изменений. Например, команда должна выглядеть следующим образом:

    svn delete https://svn.example.com/repos/MyRepo/branches/MyBranch -m LogMessage

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

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