Tue, 02 Mar 2021 17:17:09 +0100
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
3310
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
7923
91e843545d9a
Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7780
diff
changeset
|
3 | # Copyright (c) 2014 - 2021 Detlev Offenbach <detlev@die-offenbachs.de> |
3310
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing the largefiles extension interface. |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | import os |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3484
diff
changeset
|
12 | from PyQt5.QtCore import QTimer |
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3484
diff
changeset
|
13 | from PyQt5.QtWidgets import QDialog |
3310
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | from E5Gui.E5Application import e5App |
7971
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
16 | from E5Gui import E5MessageBox |
3310
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | from ..HgExtension import HgExtension |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | from ..HgDialog import HgDialog |
7971
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
20 | from ..HgClient import HgClient |
3310
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | class Largefiles(HgExtension): |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | """ |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | Class implementing the largefiles extension interface. |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | """ |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | def __init__(self, vcs): |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | """ |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | Constructor |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | @param vcs reference to the Mercurial vcs object |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | """ |
3484
645c12de6b0c
Merge with default branch.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
3359
diff
changeset
|
33 | super(Largefiles, self).__init__(vcs) |
3310
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | def hgLfconvert(self, direction, projectFile): |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | """ |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | Public slot to convert the repository format of the current project. |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | @param direction direction of the conversion (string, one of |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | 'largefiles' or 'normal') |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | @param projectFile file name of the current project file (string) |
7628
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
42 | @exception ValueError raised to indicate a bad value for the |
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
43 | 'direction' parameter. |
3310
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | """ |
7628
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
45 | if direction not in ["largefiles", "normal"]: |
f904d0eef264
Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
46 | raise ValueError("Bad value for 'direction' parameter.") |
3310
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | projectDir = os.path.dirname(projectFile) |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | from .LfConvertDataDialog import LfConvertDataDialog |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | dlg = LfConvertDataDialog(projectDir, direction) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7971
diff
changeset
|
52 | if dlg.exec() == QDialog.DialogCode.Accepted: |
3310
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | newName, minSize, patterns = dlg.getData() |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | newProjectFile = os.path.join( |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | newName, os.path.basename(projectFile)) |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | # step 1: convert the current project to new project |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | args = self.vcs.initCommand("lfconvert") |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | if direction == 'normal': |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | args.append('--to-normal') |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | else: |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | args.append("--size") |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | args.append(str(minSize)) |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | args.append(projectDir) |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | args.append(newName) |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | if direction == 'largefiles' and patterns: |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | args.extend(patterns) |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | dia = HgDialog(self.tr('Convert Project - Converting'), self.vcs) |
7971
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
70 | res = dia.startProcess(args) |
3310
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | if res: |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
72 | dia.exec() |
3310
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | res = dia.normalExit() and os.path.isdir( |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | os.path.join(newName, self.vcs.adminDir)) |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | # step 2: create working directory contents |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | if res: |
7971
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
78 | # step 2.1: start a command server client for the new repo |
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
79 | client = HgClient(newName, "utf-8", self.vcs) |
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
80 | ok, err = client.startServer() |
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
81 | if not ok: |
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
82 | E5MessageBox.warning( |
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
83 | None, |
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
84 | self.tr("Mercurial Command Server"), |
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
85 | self.tr( |
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
86 | """<p>The Mercurial Command Server could not be""" |
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
87 | """ started.</p><p>Reason: {0}</p>""").format(err)) |
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
88 | return |
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
89 | |
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
90 | # step 2.2: create working directory contents |
3310
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | args = self.vcs.initCommand("update") |
3311
b4775920f5b8
Continued implementing Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3310
diff
changeset
|
92 | args.append("--verbose") |
3310
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | dia = HgDialog(self.tr('Convert Project - Extracting'), |
7971
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
94 | self.vcs, client=client) |
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
95 | res = dia.startProcess(args) |
3310
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | if res: |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
97 | dia.exec() |
3310
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | res = dia.normalExit() and os.path.isfile(newProjectFile) |
7971
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
99 | |
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
100 | # step 2.3: stop the command server client for the new repo |
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
101 | client.stopServer() |
3310
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | # step 3: close current project and open new one |
a2032ed66aec
Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | if res: |
3311
b4775920f5b8
Continued implementing Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3310
diff
changeset
|
105 | if direction == 'largefiles': |
7971
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
106 | self.vcs.hgEditConfig( |
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
107 | repoName=newName, |
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
108 | largefilesData={"minsize": minSize, |
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
109 | "pattern": patterns} |
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
110 | ) |
3311
b4775920f5b8
Continued implementing Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3310
diff
changeset
|
111 | else: |
7971
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
112 | self.vcs.hgEditConfig( |
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
113 | repoName=newName, |
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
114 | withLargefiles=False |
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
115 | ) |
3332
7d279abef824
Fixed a crash when converting a project to/from Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3315
diff
changeset
|
116 | QTimer.singleShot( |
7d279abef824
Fixed a crash when converting a project to/from Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3315
diff
changeset
|
117 | 0, lambda: e5App().getObject("Project").openProject( |
7d279abef824
Fixed a crash when converting a project to/from Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3315
diff
changeset
|
118 | newProjectFile)) |
3313
037642483f35
Implemented the Mercurial largefiles add interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3311
diff
changeset
|
119 | |
037642483f35
Implemented the Mercurial largefiles add interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3311
diff
changeset
|
120 | def hgAdd(self, names, mode): |
037642483f35
Implemented the Mercurial largefiles add interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3311
diff
changeset
|
121 | """ |
037642483f35
Implemented the Mercurial largefiles add interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3311
diff
changeset
|
122 | Public method used to add a file to the Mercurial repository. |
037642483f35
Implemented the Mercurial largefiles add interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3311
diff
changeset
|
123 | |
3359
6b6c224d67d6
Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3332
diff
changeset
|
124 | @param names file name(s) to be added (string or list of string) |
3313
037642483f35
Implemented the Mercurial largefiles add interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3311
diff
changeset
|
125 | @param mode add mode (string one of 'normal' or 'large') |
037642483f35
Implemented the Mercurial largefiles add interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3311
diff
changeset
|
126 | """ |
037642483f35
Implemented the Mercurial largefiles add interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3311
diff
changeset
|
127 | args = self.vcs.initCommand("add") |
037642483f35
Implemented the Mercurial largefiles add interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3311
diff
changeset
|
128 | args.append("-v") |
037642483f35
Implemented the Mercurial largefiles add interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3311
diff
changeset
|
129 | if mode == "large": |
037642483f35
Implemented the Mercurial largefiles add interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3311
diff
changeset
|
130 | args.append("--large") |
037642483f35
Implemented the Mercurial largefiles add interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3311
diff
changeset
|
131 | else: |
037642483f35
Implemented the Mercurial largefiles add interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3311
diff
changeset
|
132 | args.append("--normal") |
037642483f35
Implemented the Mercurial largefiles add interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3311
diff
changeset
|
133 | |
037642483f35
Implemented the Mercurial largefiles add interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3311
diff
changeset
|
134 | if isinstance(names, list): |
037642483f35
Implemented the Mercurial largefiles add interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3311
diff
changeset
|
135 | self.vcs.addArguments(args, names) |
037642483f35
Implemented the Mercurial largefiles add interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3311
diff
changeset
|
136 | else: |
037642483f35
Implemented the Mercurial largefiles add interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3311
diff
changeset
|
137 | args.append(names) |
037642483f35
Implemented the Mercurial largefiles add interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3311
diff
changeset
|
138 | |
037642483f35
Implemented the Mercurial largefiles add interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3311
diff
changeset
|
139 | dia = HgDialog( |
037642483f35
Implemented the Mercurial largefiles add interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3311
diff
changeset
|
140 | self.tr('Adding files to the Mercurial repository'), |
037642483f35
Implemented the Mercurial largefiles add interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3311
diff
changeset
|
141 | self.vcs) |
7971
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
142 | res = dia.startProcess(args) |
3313
037642483f35
Implemented the Mercurial largefiles add interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3311
diff
changeset
|
143 | if res: |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
144 | dia.exec() |
3315
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
145 | |
7970
c4ee8a81584c
Mercurial: started more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
146 | def hgLfPull(self, revisions=None): |
3315
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
147 | """ |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
148 | Public method to pull missing large files into the local repository. |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
149 | |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
150 | @param revisions list of revisions to pull (list of string) |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
151 | """ |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
152 | revs = [] |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
153 | if revisions: |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
154 | revs = revisions |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
155 | else: |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
156 | from .LfRevisionsInputDialog import LfRevisionsInputDialog |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
157 | dlg = LfRevisionsInputDialog() |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7971
diff
changeset
|
158 | if dlg.exec() == QDialog.DialogCode.Accepted: |
3315
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
159 | revs = dlg.getRevisions() |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
160 | |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
161 | if revs: |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
162 | args = self.vcs.initCommand("lfpull") |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
163 | args.append("-v") |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
164 | for rev in revs: |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
165 | args.append("--rev") |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
166 | args.append(rev) |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
167 | |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
168 | dia = HgDialog(self.tr("Pulling large files"), self.vcs) |
7970
c4ee8a81584c
Mercurial: started more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
169 | res = dia.startProcess(args) |
3315
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
170 | if res: |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
171 | dia.exec() |
3315
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
172 | |
7971
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
173 | def hgLfVerify(self, mode): |
3315
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
174 | """ |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
175 | Public method to verify large files integrity. |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
176 | |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
177 | @param mode verify mode (string; one of 'large', 'lfa' or 'lfc') |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
178 | """ |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
179 | args = self.vcs.initCommand("verify") |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
180 | if mode == "large": |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
181 | args.append("--large") |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
182 | elif mode == "lfa": |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
183 | args.append("--lfa") |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
184 | elif mode == "lfc": |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
185 | args.append("--lfc") |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
186 | else: |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
187 | return |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
188 | |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
189 | dia = HgDialog( |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
190 | self.tr('Verifying the integrity of large files'), |
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
191 | self.vcs) |
7971
ff2971513d6d
Mercurial: completed more code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7970
diff
changeset
|
192 | res = dia.startProcess(args) |
3315
bd1a25ead18d
Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3313
diff
changeset
|
193 | if res: |
7759
51aa6c6b66f7
Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7628
diff
changeset
|
194 | dia.exec() |