Я только недавно обнаружил, что the working copy is not automatically update after a commit . Например, удаленный репозиторий показывает, что Revision и Last Changed Rev равны 63 , но рабочая копия показывает, что они равны 62 .

Я не знаю, почему SVN разработан так. В интернете люди говорят, что перед обновлением хорошо обновить рабочую копию, хотя это не всегда необходимо. Но почему не всегда обновление по умолчанию?

svn update также может "обновиться" до более ранней версии. Для меня это используется только для некоторых тестов, я не буду фиксировать их после внесения некоторых изменений в более раннюю ревизию, полученную из svn update . Если я действительно хочу revert to an earlier revision , есть опция revert когда я использую TortoiseSVN (но я не знаю, использует ли она svn update).

Так что я не знаю смысл svn update , т.е.

  • Почему бы не обновить автоматически после коммита?

  • Какой смысл svn update to an earlier revision?

2 ответа2

2

Вы используете svn update для обновления вашей рабочей копии до последней версии на сервере.

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

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

1

Для начала, revert просто отменяет ваши локальные изменения. По сути, ваша рабочая копия будет переведена в состояние последнего обновления, которое вы сделали. Чтобы обновить версию, отличную от той, которая у вас есть в качестве рабочей копии, вам нужна команда update .

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

Другой может быть: вы работали над файлом, а коллега уже внес грязное исправление, и вы не хотите, чтобы ваши изменения были объединены с его: вы хотите, чтобы там была только ваша версия.

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .