Как сохранить diff для повторного использования позже - функция похожа на shelveset в TFS?
Я вношу некоторые изменения в файл, но понимаю, что мне нужно изменить его другим способом - это требует от меня временно сохранить текущие изменения в другом месте и применить его позже. Как это сделать в svn/subversion tool, например. TortoiseSVN?
Функция, о которой я упоминаю, очень похожа на создание shelveset
и удаление ее в TFS.
Пожалуйста, помогите, если вы знаете, как это сделать. Спасибо!
Ответы
Ответ 1
Ответ AntonyW работает, но это может быть излишним, особенно если у вас много кода!
Я не знаком с TFS 'shelveset
, но svn дает вам команду svn diff
, чтобы сделать то, что вы ищете: сделать diff и сохранить его, чтобы вы могли применить его позже. Просто возьмите svn diff
вывод и сохраните его в файле .patch или .diff.
svn diff myfile > myfile.patch
Поскольку вы используете TortoiseSVN, это еще проще сделать.
Ответ 2
Вы также можете создать ветку с вашими изменениями. Это может быть даже лучше, чем хранить diff на диске.
Изменить:
Итак, у вас разные изменения в рабочей копии?
Файлы, которые вы хотите сохранить, и файлы, которые вы хотите сохранить для diff? В этом случае лучше создать патч от TortoiseSVN.
Но если вы хотите вставить исправление, то все изменения из рабочей копии лучше, на мой взгляд, создать ветку.
Это очень легко в Tortoise:
- Создайте ветвь/тег и отметьте Рабочий экземпляр в качестве источника ветки (не проверяйте переход на новую ветку).
- После того, как Tortoise создаст ветвь, верните все локальные изменения.
- Сделайте свои изменения.
- Заблокировать магистраль
- Переключиться на ветвь и слить изменения из магистрали
- Реинтегрируйте ветвь в магистраль
Для shure это работает для меня большую часть времени, исправления полезны для проверки кода, а не для создания локального набора не законченных изменений;)
Ответ 3
Что касается приведенных выше ответов, я (лично) не согласен с ними (масса и т.д.). Что касается меня (и я использую его также), это одна из хороших функций, которые в настоящее время поддерживаются только фундаментом команды и могут использоваться в сети. Это очень помогает в следующей ситуации:
- Во-первых, наиболее заметным является то, что вы можете получить обзор от другого человека без наличия зарегистрированного (и неполного) кода в основном исходном коде.
- Если у вас есть несколько решений, у вас может быть несколько стеллажей, которые вы можете протестировать в своем приложении.
- Если другой человек требует определенного вашего полка для частичного тестирования до его регистрации, он доступен.
Я искал эту функцию и обнаружил, что большинство других продуктов (SVN, mercurial) собираются ввести эту функцию в будущем, но она пока недоступна.
... всегда лучше попросить прощения, а не разрешения....
Ответ 4
Обычно я делаю checkout в новое место, вношу туда изменения, а затем фиксирую.
Позже я обновляю исходное местоположение, чтобы объединить изменения в ранее измененную версию.