src/eric7/Plugins/VcsPlugins/vcsMercurial/FastexportExtension/fastexport.py

Tue, 03 Dec 2024 17:46:41 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 03 Dec 2024 17:46:41 +0100
branch
eric7
changeset 11076
2989645b2618
parent 11075
282fc28b44ee
child 11077
e9bb2fe26a50
permissions
-rw-r--r--

Mercurial Interface
- Improved the progress output handling and adapted the 'fastexport' functionality accordingly.

11075
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2025 Detlev Offenbach <detlev@die-offenbachs.de>
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the fastexport extension interface.
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 import os
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 from PyQt6.QtCore import QProcess, pyqtSlot
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 from PyQt6.QtWidgets import QDialog
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 from eric7.EricWidgets import EricMessageBox
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 from eric7.EricWidgets.EricProgressDialog import EricProgressDialog
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 from ..HgExtension import HgExtension
11076
2989645b2618 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11075
diff changeset
19 from ..HgUtilities import (
2989645b2618 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11075
diff changeset
20 getHgExecutable,
2989645b2618 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11075
diff changeset
21 isProgressInfo,
2989645b2618 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11075
diff changeset
22 parseProgressInfo,
2989645b2618 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11075
diff changeset
23 prepareProcess,
2989645b2618 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11075
diff changeset
24 )
11075
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 class Fastexport(HgExtension):
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 """
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 Class implementing the fastexport extension interface.
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 """
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 def __init__(self, vcs, ui=None):
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 """
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 Constructor
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 @param vcs reference to the Mercurial vcs object
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 @type Hg
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 @param ui reference to a UI widget (defaults to None)
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 @type QWidget
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 """
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 super().__init__(vcs, ui=ui)
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 self.__process = None
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 self.__progress = None
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 def hgFastexport(self, revisions=None):
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 """
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 Public method to export the repository as a git fast-import stream.
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 @param revisions list of revisions to be exported
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 @type list of str
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 """
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 from .HgFastexportConfigDialog import HgFastexportConfigDialog
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 dlg = HgFastexportConfigDialog(revisions=revisions, parent=self.ui)
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 if dlg.exec() == QDialog.DialogCode.Accepted:
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 outputFile, revisions, authormap, importMarks, exportMarks = dlg.getData()
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 if os.path.exists(outputFile):
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 overwrite = EricMessageBox.yesNo(
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 self.ui,
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 self.tr("Mercurial Fastexport"),
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 self.tr(
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 "<p>The output file <b>{0}</b> exists already. Overwrite it?"
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 "</p>"
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 ).format(outputFile),
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 )
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 if not overwrite:
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 return
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 repoPath = self.vcs.getClient().getRepository()
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 hgExecutable = getHgExecutable()
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 args = self.vcs.initCommand("fastexport")
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 args.extend(["--config", "progress.assume-tty=True"])
11076
2989645b2618 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11075
diff changeset
76 args.extend(["--config", "progress.format=topic bar number estimate"])
11075
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 if authormap:
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 args.extend(["--authormap", authormap])
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 if importMarks:
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 args.extend(["--import-marks", importMarks])
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 if exportMarks:
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 args.extend(["--export-marks", exportMarks])
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 for revision in revisions:
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 args.extend(["--rev", revision])
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 self.__progress = None
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 self.__process = QProcess(parent=self)
11076
2989645b2618 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11075
diff changeset
89 prepareProcess(self.__process)
11075
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 self.__process.setStandardOutputFile(outputFile)
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 self.__process.setWorkingDirectory(repoPath)
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 self.__process.readyReadStandardError.connect(self.__readStderr)
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 self.__process.finished.connect(self.__processFinished)
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 self.__process.start(hgExecutable, args)
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 @pyqtSlot()
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 def __readStderr(self):
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 """
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 Private slot to handle the readyReadStandardError signal.
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 """
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 if self.__process is not None:
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 output = str(
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 self.__process.readAllStandardError(), self.vcs.getEncoding(), "replace"
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 )
11076
2989645b2618 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11075
diff changeset
105 msg = output.splitlines()[-1].strip()
2989645b2618 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11075
diff changeset
106 topic, value, maximum, estimate = parseProgressInfo(msg)
2989645b2618 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11075
diff changeset
107 if topic:
2989645b2618 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11075
diff changeset
108 # it is a valid progress line
11075
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 if self.__progress is None:
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 self.__progress = EricProgressDialog(
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 labelText="",
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 cancelButtonText=self.tr("Cancel"),
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 minimum=0,
11076
2989645b2618 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11075
diff changeset
114 maximum=maximum,
11075
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 labelFormat=self.tr("%v/%m Changesets"),
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 parent=self.ui,
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 )
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 self.__progress.setWindowTitle(self.tr("Mercurial Fastexport"))
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 self.__progress.show()
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 self.__progress.setLabelText(
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 self.tr("Exporting repository (time remaining: {0}) ...").format(
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 estimate
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 )
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 )
11076
2989645b2618 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11075
diff changeset
125 self.__progress.setValue(value)
11075
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 if self.__progress.wasCanceled() and self.__process is not None:
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 self.__process.terminate()
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 else:
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 if (
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 self.__progress
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 and not self.__progress.wasCanceled()
11076
2989645b2618 Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11075
diff changeset
134 and output.strip()
11075
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 ):
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 EricMessageBox.warning(
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 self.ui,
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 self.tr("Mercurial Fastexport"),
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 self.tr(
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 "<p>The repository fastexport process sent an error"
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 " message.</p><p>{0}</p>"
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 ).format(output.strip()),
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 )
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 @pyqtSlot(int, QProcess.ExitStatus)
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 def __processFinished(self, exitCode, exitStatus):
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 """
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 Private slot to handle the process finished signal.
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 @param exitCode exit code of the process
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 @type int
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 @param exitStatus exit status
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 @type QProcess.ExitStatus
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 """
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 if self.__progress is not None:
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 self.__progress.hide()
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 self.__progress.deleteLater()
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 self.__progress = None
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 if exitStatus == QProcess.ExitStatus.NormalExit:
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 if exitCode == 0:
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 EricMessageBox.information(
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 self.ui,
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 self.tr("Mercurial Fastexport"),
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 self.tr(
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 "<p>The repository fastexport process finished"
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 " successfully.</p>"
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 ),
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 )
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 elif exitCode == 255:
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 EricMessageBox.warning(
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 self.ui,
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 self.tr("Mercurial Fastexport"),
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 self.tr("<p>The repository fastexport process was cancelled.</p>"),
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 )
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 else:
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 EricMessageBox.warning(
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 self.ui,
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 self.tr("Mercurial Fastexport"),
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 self.tr(
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 "<p>The repository fastexport process finished"
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 " with exit code <b>{0}</b>.</p>"
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 ).format(exitCode),
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 )
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 else:
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 EricMessageBox.critical(
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 self.ui,
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 self.tr("Mercurial Fastexport"),
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 self.tr("<p>The repository fastexport process crashed.</p>"),
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 )
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 self.__process.deleteLater()
282fc28b44ee Mercurial Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 self.__process = None

eric ide

mercurial