Автоматическая фиксация в VisualHG - PullRequest
1 голос
/ 10 февраля 2012

Можно ли настроить VisualHg таким образом, чтобы при каждом выходе из Visual Studio 2010 мне автоматически отображался экран фиксации?

Это было бы чрезвычайно полезно, если бы я забыл зафиксировать некоторые изменения.

1 Ответ

3 голосов
/ 10 февраля 2012

Мне удалось сделать это, выполнив следующие шаги:

  1. Выберите Инструменты> Макросы> Макросы IDE из IDE VS 2010.
  2. Это должно представить вам пустуюIDE с Project Explorer слева
  3. Разверните MyMacros и дважды щелкните EnvironmentEvents

. Это даст вам файл, настроенный для обработки событий IDE.Перед последним End Module в файле добавьте следующий код:

Private Sub SolutionEvents_BeforeClosing() Handles SolutionEvents.BeforeClosing
    DTE.ExecuteCommand("File.Commit")
End Sub

Это выполнит действие фиксации до закрытия решения (что произойдет до закрытия Visual Studio), но VS не ожидаетзафиксируйте окно, чтобы закрыть его.Это не идеально, так как это означает, что вам придется перезагрузить решение, если вы хотите внести какие-либо изменения перед фиксацией.

Альтернативным решением будет обработка события QueryCloseSolution и запросПользователь, если они хотят зафиксировать свои изменения перед закрытием.Если они ответят «Да», то вы отмените закрывающее решение (установив переданное логическое значение равным True) и позвоните DTE.ExecuteCommand("File.Commit").Тогда это оставит решение открытым, пока вы выполняете коммит, но будет спрашивать вас, хотите ли вы фиксировать каждый раз, когда закрываете решение.

Дальнейшее принятие этого решения потребует запуска hg status из события QueryCloseSolutionчтобы проверить, есть ли ожидающие изменения, прежде чем спрашивать пользователя, хотят ли они зафиксировать свои изменения.

...