Как временно применить (или заархивировать) изменения PATCH / DIFF из Tortoise SVN?

Я использую Tortoise SVN + Visual SVN около года с тех пор, как покинул корпоративный мир, чтобы создать свой собственный стартап. В Tortoise SVN есть одна особенность, о которой я никогда не догадывался:

Как я могу объединить кучу изменений в файл PATCH или DIFF и либо: A) поделиться ими с моим соучредителем; или Б) заархивировать их в отдельное изменение, которое я могу либо «применить», либо «отменить» в своем блоке разработчика?

У моего предыдущего работодателя мы использовали внутренний инструмент, который позволял нам создавать так называемые файлы DPK, содержащие набор локальных изменений. Вы можете добавить измененные файлы в DPK, а затем поделиться им с коллегами. Они могут либо просмотреть изменения в инструменте Diff, либо применить все изменения из DPK, чтобы проверить ваше изменение на своем поле. После завершения проверки вы сможете зарегистрировать эти изменения. Вы также можете применить несколько DPK одновременно (при условии, что у вас нет перекрывающихся изменений).

Я хочу добиться того же с Tortoise SVN + Visual SVN в IDE VS2010.

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


person Armchair Bronco    schedule 05.06.2011    source источник
comment
Да ладно, чувак. Это совершенно нестандартный ответ и пустая трата времени. Понятно, что отказываться от SVN только из-за этой проблемы я не собираюсь. Я могу понять легкомыслие на обычном форуме, но это не подходящий ответ на таком форуме, как StackOverflow.   -  person Armchair Bronco    schedule 06.06.2011
comment
Это не ответ. Вот почему я разместил это как комментарий. И, честно говоря, то, что вы делаете, является большим преимуществом DVCS над SVN, так что ... Git, например, может автоматически отправлять электронные письма с исправлениями. И во многих случаях вы можете использовать ветвление.   -  person alternative    schedule 06.06.2011
comment
Справедливо, но даже такой комментарий - это больше шум, чем сигнал. В любом случае, из-за отсутствия реального решения, я просто сделаю XCOPY измененные файлы в каталог, а затем через несколько дней сделаю различие вручную, перенесу старые изменения в BeyondCompare. Это сработает, но сейчас 20 век.   -  person Armchair Bronco    schedule 06.06.2011
comment
То, что вы не согласны с тем, что SVN является источником проблем, не вызывает шума в моих комментариях. Совершенно законно перейти на более современный подход.   -  person alternative    schedule 06.06.2011
comment
Но я не просил, пожалуйста, порекомендуйте альтернативную платформу управления версиями. Я спросил, как мне найти решение, используя Tortoise SVN + Visual SVN в IDE VS2010. Этот обмен напоминает мне то, что я постоянно вижу на музыкальных форумах, таких как Harmony-Central.com. Я, парень, пишет, что не могу выбрать между этим красным и синим Stratocaster. Помогите выбрать правильный цвет. А потом входит какой-то парень и говорит: страты - отстой! Вместо этого вам следует купить Gretsch.   -  person Armchair Bronco    schedule 06.06.2011
comment
На этом сайте часто используются комментарии, чтобы предложить альтернативные решения, которые могут использоваться в качестве альтернативы вопросу. Это не ответ. Например, вы упомянули, что начинаете бизнес. Почему бы не начать с DVCS вместо SVN? Обычно переключение несколько болезненно на полпути ...   -  person alternative    schedule 06.06.2011
comment
Опять же, достаточно честно. Однако в контексте того, что я пытаюсь выполнить сегодня, переход на GIT (или что-то еще) не является решением. Я признаю, что если Tortoise SVN не поддерживает что-то подобное, это может стать для меня серьезным нарушением условий сделки. Честно говоря, я выбрал Visual SVN из-за его элегантной интеграции с Visual Studio. Если GIT или что-то еще предлагает такой же уровень интеграции VS2010, я рассмотрю возможность перехода. Но это не помогает мне с моей непосредственной проблемой. И я все еще не уверен, что то, что я пытаюсь сделать, НЕ возможно с Tortoise SVN.   -  person Armchair Bronco    schedule 06.06.2011
comment
Итак, это полностью выполнимо в Tortoise SVN. После создания файла PATCH нужно применить исправление из нужного места внутри рабочей копии. Вот некоторая информация: tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn- dug-patch.html   -  person Armchair Bronco    schedule 06.06.2011
comment
Пытался сделать это, но мне не хватает 4 баллов до столетней отметки, необходимой для ответа на свой вопрос менее чем за 8 часов. Спасибо за туда и обратно, математически. Я буду помнить о других решениях, но, по крайней мере, у меня есть кое-что, что работает прямо сейчас. Просто любопытно: какое решение на основе DVCS лучше всего интегрируется с Visual Studio 2010? Я ищу глубокую и бесшовную интеграцию. Если есть что-то подобное, я честно встряхну его.   -  person Armchair Bronco    schedule 06.06.2011
comment
Мне бы пришлось использовать Mercurial, хотя я никогда его не использовал, потому что Git больше ориентирован на сторону unix (хотя он работает в Windows, это не основная цель). Я слышал, что у него неплохая интеграция с VS, но я никогда не использовал его (поскольку я действительно не использую сам VS)   -  person alternative    schedule 06.06.2011


Ответы (1)


Неохотно отвечая на свой вопрос. Эта функция доступна в Tortoise SVN. По сути, вы создаете файл PATCH, распространяете его или архивируете, а затем применяете PATCH. Единственная уловка - убедиться, что вы находитесь в правильном месте в WC (Рабочей копии), когда вы делаете «применить». Когда вы подадите заявку, слева вы увидите всплывающее меню со списком всех файлов в списке изменений. Вы можете наносить патчи по одному или сразу. Кажется, отлично работает. Я должен был подробнее изучить документацию, прежде чем размещать этот вопрос.

Вот текст для выбора места:

«Файлы исправлений применяются к вашей рабочей копии. Это следует делать из того же уровня папки, на котором создавался исправление. Если вы не уверены, что это такое, просто посмотрите на первую строку файла исправления. Например, если первый обрабатываемый файл был doc / source / english / chapter1.xml, а первая строка в файле патча - Index: english / chapter1.xml, тогда вам необходимо применить исправление к папке doc / source /. при условии, что вы находитесь в правильной рабочей копии, если вы выберете неправильный уровень папки, TortoiseSVN заметит и предложит правильный уровень ".

Обязательно внимательно выбирайте место. Если Tortoise SVN не может найти его, потому что вы выбрали неправильный узел в проводнике файлов VS, он попытается найти подходящее место, и это может быть неверно. В моих тестах функция Patch на самом деле пыталась сопоставить ветку (!!), когда я указал неправильное местоположение.

Вот соответствующая ссылка:

http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-patch.html

person Armchair Bronco    schedule 06.06.2011