Как восстановить или предотвратить случайные операции UNDO/REDO в Visual Studio 2010

Случай 1 (перезаписанная история отмены/повтора)

  1. Вы редактируете исходные коды на «Program.cs». Потратив час, вы сделали 100 строк и нажали «Ctrl+S» (Сохранить).
  2. Чтобы сделать перерыв, вы покинули свой рабочий стол, не закрыв «Program.cs» и Visual Studio. Пока вы уходили, ваша собака подошла к вашему столу и последовательно набрала
    "Ctrl+Z"(Отменить) > "Ctrl+Z"(Отменить) > ... (Пока не появились исходные коды) > "а" (введите текст).
  3. Ты вернулся с перерыва, но уже слишком поздно. Вы нажимаете «Ctrl+Z» (отменить) или «Ctrl+Shift+Z» (повторить), чтобы восстановить свои 100 строк, но все, что вы можете получить, это исходные коды или «a».

Вариант 2 (Удалить историю отмены/повтора)

  1. Вы редактируете исходные коды на "Program.cs". Потратив час, вы сделали 100 строк и нажали «Ctrl+S» (Сохранить).
  2. Чтобы сделать перерыв, вы покинули свой рабочий стол, не закрыв «Program.cs» и Visual Studio. Пока вы уходили, ваша собака подошла к вашему столу и последовательно набрала
    "Ctrl+A"(Все) > "a"(Ввести текст) > "Ctrl+S"(Сохранить) > "Ctrl+ F4"(Закрыть источник).
  3. Ты вернулся с перерыва, но уже слишком поздно. Вы нажимаете «Ctrl+Z» (Отменить) или «Ctrl+Shift+Z» (Повторить), чтобы восстановить свои 100 строк, но все, что вы можете получить, это "a".

В приведенных выше случаях я хочу сказать: «Проиграть 100 строк довольно легко». ошибка.

Я хочу знать, существуют ли какие-либо решения, кроме функций фиксации и отката SVN/GIT.
К сожалению, "Отменить/Повторить последнее глобальное действие" у меня не сработало.

Спасибо за помощь.


person dosuken123    schedule 06.09.2016    source источник
comment
Случай 1 прост - просто перезагрузите файл. (Вы не сохранили, верно?) Для случая 2 у вас есть довольно впечатляющая собака, которая может нажимать Ctrl-S и Ctrl-F4. Короче говоря, не могли бы вы описать более реалистичную ситуацию, когда вы теряете работу? Я не думаю, что это действительно очень легко в данный момент...   -  person Jon Skeet    schedule 06.09.2016
comment
@JonSkeet Спасибо за совет. Но, пожалуйста, предположим, что случай 1 будет сохранен после процесса. Как я уже писал, случай 1 означает, что произошла перезапись истории отмены / повтора. Кроме того, обратите внимание на шаги, а не на собаку. Например, в случае 2 я боюсь, что всего 4 волшебных шага могут сдуть ваши коды, но... неизбежно ли это?   -  person dosuken123    schedule 07.09.2016
comment
Если вы хотели, чтобы вариант 1 включал сохранение, почему вы не добавили его туда? Я предлагаю вам сделать это сейчас. Все это до сих пор кажется мне маловероятным. Если это действительно происходит с вами часто, похоже, вам нужно чаще использовать систему управления версиями.   -  person Jon Skeet    schedule 07.09.2016
comment
@JonSkeet Еще раз спасибо. Ответ Терье Сандстрема кажется лучшим решением для этих случаев.   -  person dosuken123    schedule 07.09.2016
comment
Я бы сказал, что лучшее решение — держать собаку подальше от клавиатуры. Если собака способна причинить столько вреда только в Visual Studio, представьте, что она может сделать с вашей электронной почтой, интернет-банкингом и т. д.   -  person Jon Skeet    schedule 07.09.2016


Ответы (1)


Вы просили VS2010, но пометили это также для VS2012, а для VS2012 и более поздних версий у вас есть расширение Microsoft Devlabs AutoHistory, которое отслеживает локальную историю. Расширение находится здесь: https://visualstudiogallery.msdn.microsoft.com/dfcb2438-180c-4f8a-983b-62d89e141fe3 , блог об этом находится здесь: https://blogs.msdn.microsoft.com/visualstudio/2014/01/23/auto-history-extension-in-visual-studio-2013/

Пример скриншота, созданный diff для файла, в который я добавил метод Subtract, сохранил его, затем моя собака подошла, стерла его и вместо этого написала «bbbbb». введите здесь описание изображения

person Terje Sandstrøm    schedule 06.09.2016
comment
Несмотря на то, что это решение для VS2012 или более поздней версии, оно великолепно. Я надеюсь, что каждая IDE имеет эту функцию. - person dosuken123; 07.09.2016
comment
Это работа DevLabs, поэтому обновление может быть, а может и не быть. В обзоре для него описан хак, marketplace.visualstudio.com /, что легко сделать, и это работает. Это, по крайней мере, обходной путь, пока здесь что-то не произойдет. - person Terje Sandstrøm; 26.01.2019