Tue, 06 Oct 2020 17:52:44 +0200
Changed calls to exec_() into exec() (remainder of Python2 elimination).
5283
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
7360
9190402e4505
Updated copyright for 2020.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
3 | # Copyright (c) 2016 - 2020 Detlev Offenbach <detlev@die-offenbachs.de> |
5283
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing the histedit extension interface. |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | import os |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | import sys |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | from PyQt5.QtWidgets import QDialog |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | from ..HgExtension import HgExtension |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | from ..HgDialog import HgDialog |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | class Histedit(HgExtension): |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | """ |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | Class implementing the histedit extension interface. |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | """ |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | def __init__(self, vcs): |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | """ |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | Constructor |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | @param vcs reference to the Mercurial vcs object |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | @type Hg |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | """ |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | super(Histedit, self).__init__(vcs) |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | def hgHisteditStart(self, name, rev=""): |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | """ |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | Public method to start a histedit session. |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | @param name file/directory name |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | @type str |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | @keyparam rev revision to start histedit at |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | @type str |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | @return flag indicating that the project should be reread |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | @rtype bool |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | """ |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | # find the root of the repo |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | repodir = self.vcs.splitPath(name)[0] |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)): |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | repodir = os.path.dirname(repodir) |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | if os.path.splitdrive(repodir)[1] == os.sep: |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | return False |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | from .HgHisteditConfigDialog import HgHisteditConfigDialog |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | res = False |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | dlg = HgHisteditConfigDialog(self.vcs.hgGetTagsList(repodir), |
5291
e93d14b48c34
Corrected some code style issues and regenerated the source docu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5283
diff
changeset
|
54 | self.vcs.hgGetBranchesList(repodir), |
e93d14b48c34
Corrected some code style issues and regenerated the source docu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5283
diff
changeset
|
55 | self.vcs.hgGetBookmarksList(repodir), |
e93d14b48c34
Corrected some code style issues and regenerated the source docu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5283
diff
changeset
|
56 | rev) |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
57 | if dlg.exec() == QDialog.Accepted: |
5283
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | rev, force, keep = dlg.getData() |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | args = self.vcs.initCommand("histedit") |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | args.append("-v") |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | if keep: |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | args.append("--keep") |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | if rev: |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | if rev == "--outgoing": |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | if force: |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | args.append("--force") |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | else: |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | args.append("--rev") |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | args.append(rev) |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | editor = os.path.join( |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | os.path.dirname(__file__), "HgHisteditEditor.py") |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | env = {"HGEDITOR": "{0} {1}".format(sys.executable, editor)} |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | dia = HgDialog( |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | self.tr("Starting histedit session"), |
5291
e93d14b48c34
Corrected some code style issues and regenerated the source docu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5283
diff
changeset
|
78 | self.vcs, |
5283
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | useClient=False) |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | res = dia.startProcess(args, repodir, environment=env) |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | if res: |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
82 | dia.exec() |
5283
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | res = dia.hasAddOrDelete() |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | self.vcs.checkVCSStatus() |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | return res |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | def hgHisteditContinue(self, name): |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | """ |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | Public method to continue an interrupted histedit session. |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | @param name file/directory name |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | @type str |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | @return flag indicating that the project should be reread |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | @rtype bool |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | """ |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | # find the root of the repo |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | repodir = self.vcs.splitPath(name)[0] |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)): |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | repodir = os.path.dirname(repodir) |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | if os.path.splitdrive(repodir)[1] == os.sep: |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | return False |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | args = self.vcs.initCommand("histedit") |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | args.append("--continue") |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | args.append("-v") |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | editor = os.path.join( |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | os.path.dirname(__file__), "HgHisteditEditor.py") |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | env = {"HGEDITOR": "{0} {1}".format(sys.executable, editor)} |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | dia = HgDialog( |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | self.tr("Continue histedit session"), |
5291
e93d14b48c34
Corrected some code style issues and regenerated the source docu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5283
diff
changeset
|
113 | self.vcs, |
5283
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | useClient=False) |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | res = dia.startProcess(args, repodir, environment=env) |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | if res: |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
117 | dia.exec() |
5283
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | res = dia.hasAddOrDelete() |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | self.vcs.checkVCSStatus() |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | return res |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | def hgHisteditAbort(self, name): |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | """ |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | Public method to abort an interrupted histedit session. |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | @param name file/directory name |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | @type str |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | @return flag indicating that the project should be reread |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | @rtype bool |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | """ |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | # find the root of the repo |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | repodir = self.vcs.splitPath(name)[0] |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)): |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | repodir = os.path.dirname(repodir) |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | if os.path.splitdrive(repodir)[1] == os.sep: |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | return False |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | args = self.vcs.initCommand("histedit") |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | args.append("--abort") |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | args.append("-v") |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | editor = os.path.join( |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | os.path.dirname(__file__), "HgHisteditEditor.py") |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | env = {"HGEDITOR": "{0} {1}".format(sys.executable, editor)} |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | dia = HgDialog( |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147 | self.tr("Abort histedit session"), |
5291
e93d14b48c34
Corrected some code style issues and regenerated the source docu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5283
diff
changeset
|
148 | self.vcs, |
5283
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149 | useClient=False) |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | res = dia.startProcess(args, repodir, environment=env) |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | if res: |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
152 | dia.exec() |
5283
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | res = dia.hasAddOrDelete() |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | self.vcs.checkVCSStatus() |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | return res |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | def hgHisteditEditPlan(self, name): |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158 | """ |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | Public method to edit the remaining actions list of an interrupted |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | histedit session. |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162 | @param name file/directory name |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | @type str |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164 | @return flag indicating that the project should be reread |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165 | @rtype bool |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | """ |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | # find the root of the repo |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
168 | repodir = self.vcs.splitPath(name)[0] |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)): |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | repodir = os.path.dirname(repodir) |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | if os.path.splitdrive(repodir)[1] == os.sep: |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | return False |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
174 | args = self.vcs.initCommand("histedit") |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175 | args.append("--edit-plan") |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | args.append("-v") |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
177 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178 | editor = os.path.join( |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
179 | os.path.dirname(__file__), "HgHisteditEditor.py") |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
180 | env = {"HGEDITOR": "{0} {1}".format(sys.executable, editor)} |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
181 | |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
182 | dia = HgDialog( |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
183 | self.tr("Edit Plan"), |
5291
e93d14b48c34
Corrected some code style issues and regenerated the source docu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5283
diff
changeset
|
184 | self.vcs, |
5283
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
185 | useClient=False) |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
186 | res = dia.startProcess(args, repodir, environment=env) |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
187 | if res: |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
188 | dia.exec() |
5283
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | res = dia.hasAddOrDelete() |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | self.vcs.checkVCSStatus() |
06423d65a2b8
Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
191 | return res |