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

changeset 7970
c4ee8a81584c
parent 7923
91e843545d9a
child 8143
2c730d5fd177
equal deleted inserted replaced
7969:62eff8b34a8d 7970:c4ee8a81584c
4 # 4 #
5 5
6 """ 6 """
7 Module implementing the closehead extension interface. 7 Module implementing the closehead extension interface.
8 """ 8 """
9
10 import os
11 9
12 from PyQt5.QtWidgets import QDialog 10 from PyQt5.QtWidgets import QDialog
13 11
14 from ..HgExtension import HgExtension 12 from ..HgExtension import HgExtension
15 from ..HgDialog import HgDialog 13 from ..HgDialog import HgDialog
26 @param vcs reference to the Mercurial vcs object 24 @param vcs reference to the Mercurial vcs object
27 @type Hg 25 @type Hg
28 """ 26 """
29 super(Closehead, self).__init__(vcs) 27 super(Closehead, self).__init__(vcs)
30 28
31 def hgCloseheads(self, name, revisions=None): 29 def hgCloseheads(self, revisions=None):
32 """ 30 """
33 Public method to close arbitrary heads. 31 Public method to close arbitrary heads.
34 32
35 @param name file/directory name
36 @type str
37 @param revisions revisions of branch heads to be closed 33 @param revisions revisions of branch heads to be closed
38 @type str 34 @type str
39 """ 35 """
40 # find the root of the repo
41 repodir = self.vcs.splitPath(name)[0]
42 while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)):
43 repodir = os.path.dirname(repodir)
44 if os.path.splitdrive(repodir)[1] == os.sep:
45 return
46
47 message = "" 36 message = ""
48 if not revisions: 37 if not revisions:
49 from .HgCloseHeadSelectionDialog import HgCloseHeadSelectionDialog 38 from .HgCloseHeadSelectionDialog import HgCloseHeadSelectionDialog
50 dlg = HgCloseHeadSelectionDialog(self.vcs, name) 39 dlg = HgCloseHeadSelectionDialog(self.vcs)
51 if dlg.exec() == QDialog.Accepted: 40 if dlg.exec() == QDialog.Accepted:
52 revisions, message = dlg.getData() 41 revisions, message = dlg.getData()
53 42
54 if not revisions: 43 if not revisions:
55 # still no revisions given; abort... 44 # still no revisions given; abort...
66 args += ["--message", message] 55 args += ["--message", message]
67 for revision in revisions: 56 for revision in revisions:
68 args += ["--rev", revision] 57 args += ["--rev", revision]
69 58
70 dia = HgDialog(self.tr("Closing Heads"), self.vcs) 59 dia = HgDialog(self.tr("Closing Heads"), self.vcs)
71 res = dia.startProcess(args, repodir) 60 res = dia.startProcess(args)
72 if res: 61 if res:
73 dia.exec() 62 dia.exec()

eric ide

mercurial