Как сохранить diff для повторного использования позже-функция, похожая на shelveset в TFS?

Я делаю некоторые изменения в файле, но понимаю, что мне нужно изменить его по - другому-это требует от меня временного сохранения текущих изменений в другом месте и применения его позже. Как это сделать в svn / subversion tool, например TortoiseSVN?

функция, которую я упоминаю, очень похожа на making shelveset и распаковка его в TFS.

пожалуйста, помогите, если знаете как. Спасибо!

4 ответов


ответ AntonyW работает, но это может быть излишним, особенно если у вас много кода !

Я не знаком с TFS' shelveset но svn дает вам svn diff команда, чтобы сделать именно то, что вы ищете: сделать разницу и сохранить его, чтобы вы могли применить его позже. Просто возьмите svn diff ' s выход и сохранить его в a .патч или. файл diff.

svn diff myfile > myfile.patch

поскольку вы используете TortoiseSVN,это еще проще сделать.


вы также можете создать ветку с вашими изменениями. Это может быть даже лучше, чем хранить diff на диске.


изменить: Значит, у вас есть разные изменения в рабочей копии? Файлы, которые вы хотите сохранить, и файлы, которые вы хотите сохранить в diff? В этом случае, возможно, лучше создать патч из TortoiseSVN.

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

  1. создайте ветвь / тег и отметьте рабочую копию как источник ветви (не проверяйте, чтобы переключиться на новую ветвь).
  2. после того, как Tortoise создает ветку, верните все локальные изменения
  3. Сделайте ваши другие изменения
  4. Commit to trunk
  5. переключитесь на ветку и объедините изменения из trunk
  6. вернуть ветку в багажник

для shure он работает для меня большую часть времени, патчи хороши для обзора кода, а не для создание локального набора инструментов незавершенных изменений;)


Что касается приведенных выше ответов, я (лично) не согласен с ними (навалом и т. д...). Что касается меня (и я использую его), это одна из хороших функций, которая в настоящее время поддерживается только team foundation и может использоваться по сети. Это очень помогает в следующей ситуации:

  1. во-первых и наиболее заметным является то, что вы можете иметь обзор от другого человека, не имея зарегистрированного (и неполного) кода в основном исходном коде.
  2. In если у вас есть несколько решений, вы можете иметь несколько полок, которые вы можете протестировать в своем приложении.
  3. Если другой человек требует определенного набора Ваш для частичного тестирования до его регистрации, он доступен.

Я искал эту функцию и обнаружил, что большинство других продуктов (SVN, mercurial) собираются ввести эту функцию в будущем, но она пока недоступна.

...всегда лучше попросить прощения вместо разрешения....


Я обычно делаю проверку в новое место, делаю изменения там, а затем фиксирую.

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