15 |
15 |
16 class Rebase(HgExtension): |
16 class Rebase(HgExtension): |
17 """ |
17 """ |
18 Class implementing the rebase extension interface. |
18 Class implementing the rebase extension interface. |
19 """ |
19 """ |
|
20 |
20 def __init__(self, vcs): |
21 def __init__(self, vcs): |
21 """ |
22 """ |
22 Constructor |
23 Constructor |
23 |
24 |
24 @param vcs reference to the Mercurial vcs object |
25 @param vcs reference to the Mercurial vcs object |
25 """ |
26 """ |
26 super().__init__(vcs) |
27 super().__init__(vcs) |
27 |
28 |
28 def hgRebase(self): |
29 def hgRebase(self): |
29 """ |
30 """ |
30 Public method to rebase changesets to a different branch. |
31 Public method to rebase changesets to a different branch. |
31 |
32 |
32 @return flag indicating that the project should be reread (boolean) |
33 @return flag indicating that the project should be reread (boolean) |
33 """ |
34 """ |
34 res = False |
35 res = False |
35 from .HgRebaseDialog import HgRebaseDialog |
36 from .HgRebaseDialog import HgRebaseDialog |
36 dlg = HgRebaseDialog(self.vcs.hgGetTagsList(), |
37 |
37 self.vcs.hgGetBranchesList(), |
38 dlg = HgRebaseDialog( |
38 self.vcs.hgGetBookmarksList(), |
39 self.vcs.hgGetTagsList(), |
39 self.vcs.version) |
40 self.vcs.hgGetBranchesList(), |
|
41 self.vcs.hgGetBookmarksList(), |
|
42 self.vcs.version, |
|
43 ) |
40 if dlg.exec() == QDialog.DialogCode.Accepted: |
44 if dlg.exec() == QDialog.DialogCode.Accepted: |
41 (indicator, sourceRev, destRev, collapse, keep, keepBranches, |
45 ( |
42 detach, dryRunOnly, dryRunConfirm) = dlg.getData() |
46 indicator, |
43 |
47 sourceRev, |
|
48 destRev, |
|
49 collapse, |
|
50 keep, |
|
51 keepBranches, |
|
52 detach, |
|
53 dryRunOnly, |
|
54 dryRunConfirm, |
|
55 ) = dlg.getData() |
|
56 |
44 args = self.vcs.initCommand("rebase") |
57 args = self.vcs.initCommand("rebase") |
45 if indicator == "S": |
58 if indicator == "S": |
46 args.append("--source") |
59 args.append("--source") |
47 args.append(sourceRev) |
60 args.append(sourceRev) |
48 elif indicator == "B": |
61 elif indicator == "B": |
62 if dryRunOnly: |
75 if dryRunOnly: |
63 args.append("--dry-run") |
76 args.append("--dry-run") |
64 elif dryRunConfirm: |
77 elif dryRunConfirm: |
65 args.append("--confirm") |
78 args.append("--confirm") |
66 args.append("--verbose") |
79 args.append("--verbose") |
67 |
80 |
68 dia = HgDialog(self.tr('Rebase Changesets'), self.vcs) |
81 dia = HgDialog(self.tr("Rebase Changesets"), self.vcs) |
69 res = dia.startProcess(args) |
82 res = dia.startProcess(args) |
70 if res: |
83 if res: |
71 dia.exec() |
84 dia.exec() |
72 res = dia.hasAddOrDelete() |
85 res = dia.hasAddOrDelete() |
73 self.vcs.checkVCSStatus() |
86 self.vcs.checkVCSStatus() |
74 return res |
87 return res |
75 |
88 |
76 def hgRebaseContinue(self): |
89 def hgRebaseContinue(self): |
77 """ |
90 """ |
78 Public method to continue rebasing changesets from another branch. |
91 Public method to continue rebasing changesets from another branch. |
79 |
92 |
80 @return flag indicating that the project should be reread (boolean) |
93 @return flag indicating that the project should be reread (boolean) |
81 """ |
94 """ |
82 args = self.vcs.initCommand("rebase") |
95 args = self.vcs.initCommand("rebase") |
83 args.append("--continue") |
96 args.append("--continue") |
84 args.append("--verbose") |
97 args.append("--verbose") |
85 |
98 |
86 dia = HgDialog(self.tr('Rebase Changesets (Continue)'), self.vcs) |
99 dia = HgDialog(self.tr("Rebase Changesets (Continue)"), self.vcs) |
87 res = dia.startProcess(args) |
100 res = dia.startProcess(args) |
88 if res: |
101 if res: |
89 dia.exec() |
102 dia.exec() |
90 res = dia.hasAddOrDelete() |
103 res = dia.hasAddOrDelete() |
91 self.vcs.checkVCSStatus() |
104 self.vcs.checkVCSStatus() |
92 return res |
105 return res |
93 |
106 |
94 def hgRebaseAbort(self): |
107 def hgRebaseAbort(self): |
95 """ |
108 """ |
96 Public method to abort rebasing changesets from another branch. |
109 Public method to abort rebasing changesets from another branch. |
97 |
110 |
98 @return flag indicating that the project should be reread (boolean) |
111 @return flag indicating that the project should be reread (boolean) |
99 """ |
112 """ |
100 args = self.vcs.initCommand("rebase") |
113 args = self.vcs.initCommand("rebase") |
101 args.append("--abort") |
114 args.append("--abort") |
102 args.append("--verbose") |
115 args.append("--verbose") |
103 |
116 |
104 dia = HgDialog(self.tr('Rebase Changesets (Abort)'), self.vcs) |
117 dia = HgDialog(self.tr("Rebase Changesets (Abort)"), self.vcs) |
105 res = dia.startProcess(args) |
118 res = dia.startProcess(args) |
106 if res: |
119 if res: |
107 dia.exec() |
120 dia.exec() |
108 res = dia.hasAddOrDelete() |
121 res = dia.hasAddOrDelete() |
109 self.vcs.checkVCSStatus() |
122 self.vcs.checkVCSStatus() |