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() |