eric7/Plugins/VcsPlugins/vcsMercurial/CloseheadExtension/closehead.py

branch
eric7
changeset 8312
800c432b34c8
parent 8218
7c09585bd960
child 8318
962bce857696
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eric7/Plugins/VcsPlugins/vcsMercurial/CloseheadExtension/closehead.py	Sat May 15 18:45:04 2021 +0200
@@ -0,0 +1,62 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2019 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing the closehead extension interface.
+"""
+
+from PyQt5.QtWidgets import QDialog
+
+from ..HgExtension import HgExtension
+from ..HgDialog import HgDialog
+
+
+class Closehead(HgExtension):
+    """
+    Class implementing the strip extension interface.
+    """
+    def __init__(self, vcs):
+        """
+        Constructor
+        
+        @param vcs reference to the Mercurial vcs object
+        @type Hg
+        """
+        super().__init__(vcs)
+    
+    def hgCloseheads(self, revisions=None):
+        """
+        Public method to close arbitrary heads.
+        
+        @param revisions revisions of branch heads to be closed
+        @type str
+        """
+        message = ""
+        if not revisions:
+            from .HgCloseHeadSelectionDialog import HgCloseHeadSelectionDialog
+            dlg = HgCloseHeadSelectionDialog(self.vcs)
+            if dlg.exec() == QDialog.DialogCode.Accepted:
+                revisions, message = dlg.getData()
+        
+        if not revisions:
+            # still no revisions given; abort...
+            return
+        
+        args = self.vcs.initCommand("close-head")
+        if not message:
+            if len(revisions) == 1:
+                message = self.tr("Revision <{0}> closed.").format(
+                    revisions[0])
+            else:
+                message = self.tr("Revisions <{0}> closed.").format(
+                    ", ".join(revisions))
+        args += ["--message", message]
+        for revision in revisions:
+            args += ["--rev", revision]
+        
+        dia = HgDialog(self.tr("Closing Heads"), self.vcs)
+        res = dia.startProcess(args)
+        if res:
+            dia.exec()

eric ide

mercurial