VisualHG中的自动提交

时间:2012-02-09 20:29:17

标签: visual-studio visual-studio-2010 version-control mercurial visualhg

是否可以设置VisualHg,以便每次退出Visual Studio 2010时都会自动显示提交屏幕?

如果我忘记进行一些更改,这将非常有用。

1 个答案:

答案 0 :(得分:3)

我已设法使用以下步骤执行此操作:

  1. 选择工具>宏> VS 2010 IDE中的宏IDE。
  2. 这应该为您提供一个左侧带有Project Explorer的空IDE
  3. 展开MyMacros并双击EnvironmentEvents
  4. 这将为您提供一个设置为处理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以检查是否存在未完成的更改,然后询问用户是否要提交更改。