Fri, 29 Jul 2011 19:01:14 +0200
Added code to start monitoring the Mercurial hgrc file when it was created by starting the hgrc file editor.
1078
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
3 | # Copyright (c) 2011 Detlev Offenbach <detlev@die-offenbachs.de> |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing the transplant extension interface. |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | import os |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | from PyQt4.QtGui import QDialog |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | |
1087
fb8cd56819a9
Changed the Mercurial extension interface code to use custom base classes instead of inheriting QObject directly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1078
diff
changeset
|
14 | from ..HgExtension import HgExtension |
1078
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | from ..HgDialog import HgDialog |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | from .TransplantDialog import TransplantDialog |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | |
1087
fb8cd56819a9
Changed the Mercurial extension interface code to use custom base classes instead of inheriting QObject directly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1078
diff
changeset
|
20 | class Transplant(HgExtension): |
1078
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | """ |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | Class implementing the transplant extension interface. |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | """ |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | def __init__(self, vcs): |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | """ |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | Constructor |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | @param vcs reference to the Mercurial vcs object |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | """ |
1087
fb8cd56819a9
Changed the Mercurial extension interface code to use custom base classes instead of inheriting QObject directly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1078
diff
changeset
|
30 | super().__init__(vcs) |
1078
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | def hgTransplant(self, path): |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | """ |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | Public method to transplant changesets from another branch. |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | @param path directory name of the project (string) |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | @return flag indicating that the project should be reread (boolean) |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | """ |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | # find the root of the repo |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | repodir = self.vcs.splitPath(path)[0] |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)): |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | repodir = os.path.dirname(repodir) |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | if repodir == os.sep: |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | return False |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | res = False |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | dlg = TransplantDialog(self.vcs.hgGetBranchesList(repodir)) |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | if dlg.exec_() == QDialog.Accepted: |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | revs, sourceRepo, branch, all, pruneRevs, mergeRevs, log = dlg.getData() |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | args = [] |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | args.append("transplant") |
1092
1b149c2d9ae1
Some small tweaks to the transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1091
diff
changeset
|
53 | args.append("--verbose") |
1078
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | if sourceRepo: |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | args.append("--source") |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | args.append(sourceRepo) |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | if branch: |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | args.append("--branch") |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | args.append(branch) |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | if all: |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | args.append("--all") |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | for pruneRev in pruneRevs: |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | args.append("--prune") |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | args.append(pruneRev) |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | for mergeRev in mergeRevs: |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | args.append("--merge") |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | args.append(mergeRev) |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | if log: |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | args.append("--log") |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | args.extend(revs) |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | dia = HgDialog(self.trUtf8('Transplant Changesets')) |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | res = dia.startProcess(args, repodir) |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | if res: |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | dia.exec_() |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | res = dia.hasAddOrDelete() |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | self.vcs.checkVCSStatus() |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | return res |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | def hgTransplantContinue(self, path): |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | """ |
1091
de098acb7ad2
Corrected a source docu description in the transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
82 | Public method to continue transplanting changesets from another branch. |
1078
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | @param path directory name of the project (string) |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | @return flag indicating that the project should be reread (boolean) |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | """ |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | # find the root of the repo |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | repodir = self.vcs.splitPath(path)[0] |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)): |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | repodir = os.path.dirname(repodir) |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | if repodir == os.sep: |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | return |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | args = [] |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | args.append("transplant") |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | args.append("--continue") |
1092
1b149c2d9ae1
Some small tweaks to the transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1091
diff
changeset
|
97 | args.append("--verbose") |
1078
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | |
1093
47bc4ef30315
Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1092
diff
changeset
|
99 | dia = HgDialog(self.trUtf8('Transplant Changesets (Continue)')) |
1078
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | res = dia.startProcess(args, repodir) |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | if res: |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | dia.exec_() |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | res = dia.hasAddOrDelete() |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | self.vcs.checkVCSStatus() |
aeee8401e2ce
Added support for the Mercurial transplant extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | return res |