Я начал использовать Subversion с TortoiseSVN. Если я открою журнал и щелкну правой кнопкой мыши на старой ревизии, я увижу две опции, которые звучат так, будто они возвращаются к более старой версии: «Обновить элемент до ревизии» и «Вернуться к этой ревизии».
Я понимаю, что обновление до более ранней ревизии используется, когда вам нужно только оглянуться на старую версию, но не изменить хранилище. Возврат - это когда вы действительно облажались и хотите, чтобы последняя ревизия в хранилище была такой же, как и более старая версия.
Итак, скажите, что ревизия HEAD равна 100, и я вернусь обратно к 95. Она вернет мое объединение рабочей копии обратно к 95. Затем я могу зафиксировать это изменение в репозитории, что создаст правильную ревизию 101? Как это отличается, если я должен был вернуться к ревизии 95? Разве это все еще не отменяет изменения по сравнению с последними ревизиями? Я не понимаю, как меняется состояние моей рабочей копии после возврата или обновления до более старой версии.
источник
update to
иrevert to/from
обрабатывать локальные изменения (незафиксированные изменения)?Чтобы понять, как состояние вашей рабочей копии отличается в обоих сценариях, вы должны понять концепцию BASE-редакции :
Ваша рабочая копия содержит снимок каждого файла (скрытого в папке .svn) в этой редакции BASE, то есть, как это было при последнем извлечении из хранилища . Это объясняет, почему рабочие копии занимают в 2 раза больше места, и как возможно, что вы можете просматривать и даже отменять локальные изменения без подключения к сети.
Обновление элемента до ревизии изменяет эту базовую ревизию, делая BASE устаревшим. Когда вы попытаетесь зафиксировать локальные изменения, SVN заметит, что ваш BASE не соответствует HEAD хранилища. В фиксации будет отказано, пока вы не сделаете обновление (и, возможно, объединение), чтобы это исправить.
Возврат к ревизии не меняет BASE. Концептуально это почти то же самое, что редактировать файл вручную, чтобы соответствовать более ранней ревизии.
источник
update to
иrevert to/from
обрабатывать локальные изменения (незафиксированные изменения)?После этого файлы в вашей рабочей копии могут выглядеть точно так же, но они по-прежнему очень разные действия - хранилище находится в совершенно другом состоянии, и после возврата вам будут доступны другие параметры, чем «обновление» до старой версии ,
Вкратце, «обновление до» влияет только на вашу рабочую копию, но «обратное объединение и фиксация» повлияет на хранилище.
Если вы «обновите» старую ревизию, то хранилище не изменилось: в вашем примере ревизия HEAD по-прежнему равна 100. Вам не нужно ничего фиксировать, поскольку вы просто возитесь с вашей рабочей копией. Если вы внесете изменения в свою рабочую копию и попытаетесь зафиксировать ее, вам сообщат, что ваша рабочая копия устарела, и вам потребуется обновить ее, прежде чем вы сможете выполнить фиксацию. Если кто-то еще работает в том же хранилище, выполняет «обновление» или если вы извлекаете вторую рабочую копию, это будет r100.
Однако, если вы «отмените слияние» со старой ревизией, тогда ваша рабочая копия по-прежнему будет основана на HEAD (при условии, что вы обновлены), но вы создаете новую ревизию, чтобы заменить нежелательные изменения. Вы должны зафиксировать эти изменения, так как вы меняете хранилище. После того, как все обновления или новые рабочие копии, основанные на HEAD, будут отображаться как r101, с содержанием, которое вы только что зафиксировали.
источник
Обновите вашу рабочую копию до выбранной ревизии. Полезно, если вы хотите, чтобы ваша рабочая копия отражала время в прошлом, или если в хранилище были зафиксированы дальнейшие коммиты, и вы хотите обновлять свою рабочую копию по одному шагу за раз. Лучше всего обновить весь каталог в вашей рабочей копии, а не только один файл, иначе ваша рабочая копия может быть несовместимой. Это используется для проверки конкретной цели оборотов. Если тест уже завершен, вы можете использовать эту команду для проверки другого оборота или использовать SVN Update для получения HEAD
Если вы хотите навсегда отменить предыдущее изменение, используйте вместо этого Вернуть к этой ревизии .
- из ТСВН, помогите доку
Если вы обновите свою рабочую копию до более ранней версии, это повлияет только на вашу собственную рабочую копию, после внесения каких-либо изменений и необходимости фиксации произойдет сбой, TSVN сообщит вам сначала обновить ваш WC до последней версии. Если вы вернетесь до версии, вы можете зафиксировать в хранилище. Каждый вернется к версии после обновления.
источник
Текст из ссылки Черепаха:
Обновить элемент до ревизии Обновите вашу рабочую копию до выбранной ревизии. Полезно, если вы хотите, чтобы ваша рабочая копия отражала время в прошлом, или если в хранилище были зафиксированы дальнейшие коммиты, и вы хотите обновлять свою рабочую копию по одному шагу за раз. Лучше всего обновить весь каталог в вашей рабочей копии, а не только один файл, иначе ваша рабочая копия может быть несовместимой.
Если вы хотите навсегда отменить предыдущее изменение, используйте вместо этого Вернуть к этой ревизии.
Возврат к этой ревизии Возврат к более ранней ревизии. Если вы внесли несколько изменений, а затем решили, что действительно хотите вернуться к тому, что было в редакции N, эта команда вам нужна. Изменения отменены в вашей рабочей копии, поэтому эта операция не влияет на хранилище, пока вы не подтвердите изменения. Обратите внимание, что это отменит все изменения, сделанные после выбранной ревизии, заменив файл / папку более ранней версией.
Если ваша рабочая копия находится в неизмененном состоянии, после выполнения этого действия ваша рабочая копия будет отображаться как измененная. Если у вас уже есть локальные изменения, эта команда объединит отмененные изменения в вашу рабочую копию.
Внутри происходит то, что Subversion выполняет обратное объединение всех изменений, внесенных после выбранной ревизии, отменяя эффект этих предыдущих фиксаций.
Если после выполнения этого действия вы решите отменить отмену и вернуть свою рабочую копию в прежнее неизмененное состояние, вам следует использовать TortoiseSVN → Вернуть из проводника Windows, который отменит локальные изменения, сделанные этим действием обратного слияния.
Если вы просто хотите посмотреть, как файл или папка выглядели в более ранней ревизии, используйте «Обновить до ревизии» или «Сохранить ревизию как ...».
источник
Обновление @BaltoStar до версии синтаксиса:
http://svnbook.red-bean.com/en/1.6/svn.ref.svn.c.update.html
Где 30 - номер редакции. Надеюсь, это поможет!
источник