Sat, 13 Apr 2013 13:06:39 +0200
Fixed an issue in the Mercurial log browser setting the correct state of the phase button in 'incoming' and 'outgoing' mode.
1011
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
2302
f29e9405c851
Updated copyright for 2013.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
3 | # Copyright (c) 2011 - 2013 Detlev Offenbach <detlev@die-offenbachs.de> |
1011
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing the bookmarks extension interface. |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | import os |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
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:
1066
diff
changeset
|
12 | from PyQt4.QtCore import QProcess |
1011
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | from PyQt4.QtGui import QDialog, QInputDialog |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | |
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:
1066
diff
changeset
|
15 | from ..HgExtension import HgExtension |
1011
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | from ..HgDialog import HgDialog |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | from .HgBookmarksListDialog import HgBookmarksListDialog |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | from .HgBookmarkDialog import HgBookmarkDialog |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | from .HgBookmarkRenameDialog import HgBookmarkRenameDialog |
1018
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
21 | from .HgBookmarksInOutDialog import HgBookmarksInOutDialog |
1011
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | |
1017
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
23 | import Preferences |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
24 | |
1011
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | |
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:
1066
diff
changeset
|
26 | class Bookmarks(HgExtension): |
1011
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | """ |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | Class implementing the bookmarks extension interface. |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | """ |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | def __init__(self, vcs): |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | """ |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | Constructor |
1066
a3dd41fd9ea8
Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1061
diff
changeset
|
33 | |
a3dd41fd9ea8
Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1061
diff
changeset
|
34 | @param vcs reference to the Mercurial vcs object |
1011
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | """ |
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:
1066
diff
changeset
|
36 | super().__init__(vcs) |
1011
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | self.bookmarksListDlg = None |
1018
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
39 | self.bookmarksInOutDlg = None |
1011
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | self.bookmarksList = [] |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | def shutdown(self): |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | """ |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | Public method used to shutdown the bookmarks interface. |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | """ |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | if self.bookmarksListDlg is not None: |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | self.bookmarksListDlg.close() |
1018
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
48 | if self.bookmarksInOutDlg is not None: |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
49 | self.bookmarksInOutDlg.close() |
1011
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | def hgListBookmarks(self, path): |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | """ |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | Public method used to list the available bookmarks. |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | @param path directory name of the project (string) |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | """ |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | self.bookmarksList = [] |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | self.bookmarksListDlg = HgBookmarksListDialog(self.vcs) |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | self.bookmarksListDlg.show() |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | self.bookmarksListDlg.start(path, self.bookmarksList) |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | |
1017
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
63 | def hgGetBookmarksList(self, repodir): |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
64 | """ |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
65 | Public method to get the list of bookmarks. |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
66 | |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
67 | @param repodir directory name of the repository (string) |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
68 | @return list of bookmarks (list of string) |
1011
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | """ |
1017
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
70 | args = [] |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
71 | args.append('bookmarks') |
1251
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
72 | |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
73 | client = self.vcs.getClient() |
1253
4a994190cf8b
Fixed an issue accessing an undefined variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1251
diff
changeset
|
74 | output = "" |
1251
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
75 | if client: |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
76 | output = client.runcommand(args)[0] |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
77 | else: |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
78 | ioEncoding = Preferences.getSystem("IOEncoding") |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
79 | process = QProcess() |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
80 | process.setWorkingDirectory(repodir) |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
81 | process.start('hg', args) |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
82 | procStarted = process.waitForStarted() |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
83 | if procStarted: |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
84 | finished = process.waitForFinished(30000) |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
85 | if finished and process.exitCode() == 0: |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
86 | output = \ |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
87 | str(process.readAllStandardOutput(), ioEncoding, 'replace') |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
88 | |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
89 | self.bookmarksList = [] |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
90 | for line in output.splitlines(): |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
91 | l = line.strip().split() |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
92 | if l[-1][0] in "1234567890": |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
93 | # last element is a rev:changeset |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
94 | del l[-1] |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
95 | if l[0] == "*": |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
96 | del l[0] |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
97 | name = " ".join(l) |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
98 | self.bookmarksList.append(name) |
1011
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | return self.bookmarksList[:] |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | def hgBookmarkDefine(self, name): |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | """ |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | Public method to define a bookmark. |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | @param name file/directory name (string) |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | """ |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | # find the root of the repo |
1018
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
109 | repodir = self.vcs.splitPath(name)[0] |
1011
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)): |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | repodir = os.path.dirname(repodir) |
1318
6fa303bd65d6
Fixed issues in various Mercurial files that could cause infinite loops on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1253
diff
changeset
|
112 | if os.path.splitdrive(repodir)[1] == os.sep: |
1011
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | return |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | |
1061
3e21869872e3
Fixed PEP-8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1018
diff
changeset
|
115 | dlg = HgBookmarkDialog(HgBookmarkDialog.DEFINE_MODE, |
1017
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
116 | self.vcs.hgGetTagsList(repodir), |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
117 | self.vcs.hgGetBranchesList(repodir), |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
118 | self.hgGetBookmarksList(repodir)) |
1011
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | if dlg.exec_() == QDialog.Accepted: |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | rev, bookmark = dlg.getData() |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | args = [] |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | args.append("bookmarks") |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | if rev: |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | args.append("--rev") |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | args.append(rev) |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | args.append(bookmark) |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | |
1251
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
129 | dia = HgDialog(self.trUtf8('Mercurial Bookmark'), self.vcs) |
1011
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | res = dia.startProcess(args, repodir) |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | if res: |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | dia.exec_() |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | def hgBookmarkDelete(self, name): |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | """ |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | Public method to delete a bookmark. |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | @param name file/directory name (string) |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | """ |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | # find the root of the repo |
1018
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
141 | repodir = self.vcs.splitPath(name)[0] |
1011
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)): |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | repodir = os.path.dirname(repodir) |
1318
6fa303bd65d6
Fixed issues in various Mercurial files that could cause infinite loops on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1253
diff
changeset
|
144 | if os.path.splitdrive(repodir)[1] == os.sep: |
1011
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145 | return |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147 | bookmark, ok = QInputDialog.getItem( |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148 | None, |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149 | self.trUtf8("Delete Bookmark"), |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | self.trUtf8("Select the bookmark to be deleted:"), |
1017
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
151 | [""] + sorted(self.hgGetBookmarksList(repodir)), |
1011
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | 0, True) |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | if ok and bookmark: |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | args = [] |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | args.append("bookmarks") |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | args.append("--delete") |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | args.append(bookmark) |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158 | |
1251
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
159 | dia = HgDialog(self.trUtf8('Delete Mercurial Bookmark'), self.vcs) |
1011
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | res = dia.startProcess(args, repodir) |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | if res: |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162 | dia.exec_() |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164 | def hgBookmarkRename(self, name): |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165 | """ |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | Public method to rename a bookmark. |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
168 | @param name file/directory name (string) |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | """ |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | # find the root of the repo |
1018
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
171 | repodir = self.vcs.splitPath(name)[0] |
1011
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)): |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | repodir = os.path.dirname(repodir) |
1318
6fa303bd65d6
Fixed issues in various Mercurial files that could cause infinite loops on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1253
diff
changeset
|
174 | if os.path.splitdrive(repodir)[1] == os.sep: |
1011
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175 | return |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | |
1017
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
177 | dlg = HgBookmarkRenameDialog(self.hgGetBookmarksList(repodir)) |
1011
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178 | if dlg.exec_() == QDialog.Accepted: |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
179 | newName, oldName = dlg.getData() |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
180 | |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
181 | args = [] |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
182 | args.append("bookmarks") |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
183 | args.append("--rename") |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
184 | args.append(oldName) |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
185 | args.append(newName) |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
186 | |
1251
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
187 | dia = HgDialog(self.trUtf8('Rename Mercurial Bookmark'), self.vcs) |
1011
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
188 | res = dia.startProcess(args, repodir) |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | if res: |
0b118aefae5b
Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | dia.exec_() |
1017
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
191 | |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
192 | def hgBookmarkMove(self, name): |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
193 | """ |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
194 | Public method to move a bookmark. |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
195 | |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
196 | @param name file/directory name (string) |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
197 | """ |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
198 | # find the root of the repo |
1018
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
199 | repodir = self.vcs.splitPath(name)[0] |
1017
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
200 | while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)): |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
201 | repodir = os.path.dirname(repodir) |
1318
6fa303bd65d6
Fixed issues in various Mercurial files that could cause infinite loops on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1253
diff
changeset
|
202 | if os.path.splitdrive(repodir)[1] == os.sep: |
1017
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
203 | return |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
204 | |
1061
3e21869872e3
Fixed PEP-8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1018
diff
changeset
|
205 | dlg = HgBookmarkDialog(HgBookmarkDialog.MOVE_MODE, |
1017
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
206 | self.vcs.hgGetTagsList(repodir), |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
207 | self.vcs.hgGetBranchesList(repodir), |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
208 | self.hgGetBookmarksList(repodir)) |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
209 | if dlg.exec_() == QDialog.Accepted: |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
210 | rev, bookmark = dlg.getData() |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
211 | |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
212 | args = [] |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
213 | args.append("bookmarks") |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
214 | args.append("--force") |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
215 | if rev: |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
216 | args.append("--rev") |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
217 | args.append(rev) |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
218 | args.append(bookmark) |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
219 | |
1251
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
220 | dia = HgDialog(self.trUtf8('Move Mercurial Bookmark'), self.vcs) |
1017
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
221 | res = dia.startProcess(args, repodir) |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
222 | if res: |
919147f2b518
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1011
diff
changeset
|
223 | dia.exec_() |
1018
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
224 | |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
225 | def hgBookmarkIncoming(self, name): |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
226 | """ |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
227 | Public method to show a list of incoming bookmarks. |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
228 | |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
229 | @param name file/directory name (string) |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
230 | """ |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
231 | self.bookmarksInOutDlg = HgBookmarksInOutDialog( |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
232 | self.vcs, HgBookmarksInOutDialog.INCOMING) |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
233 | self.bookmarksInOutDlg.show() |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
234 | self.bookmarksInOutDlg.start(name) |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
235 | |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
236 | def hgBookmarkOutgoing(self, name): |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
237 | """ |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
238 | Public method to show a list of outgoing bookmarks. |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
239 | |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
240 | @param name file/directory name (string) |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
241 | """ |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
242 | self.bookmarksInOutDlg = HgBookmarksInOutDialog( |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
243 | self.vcs, HgBookmarksInOutDialog.OUTGOING) |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
244 | self.bookmarksInOutDlg.show() |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
245 | self.bookmarksInOutDlg.start(name) |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
246 | |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
247 | def __getInOutBookmarks(self, repodir, incoming): |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
248 | """ |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
249 | Public method to get the list of incoming or outgoing bookmarks. |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
250 | |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
251 | @param repodir directory name of the repository (string) |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
252 | @param incoming flag indicating to get incoming bookmarks (boolean) |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
253 | @return list of bookmarks (list of string) |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
254 | """ |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
255 | bookmarksList = [] |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
256 | |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
257 | args = [] |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
258 | if incoming: |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
259 | args.append('incoming') |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
260 | else: |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
261 | args.append('outgoing') |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
262 | args.append('--bookmarks') |
1251
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
263 | |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
264 | client = self.vcs.getClient() |
1253
4a994190cf8b
Fixed an issue accessing an undefined variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1251
diff
changeset
|
265 | output = "" |
1251
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
266 | if client: |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
267 | output = client.runcommand(args)[0] |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
268 | else: |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
269 | ioEncoding = Preferences.getSystem("IOEncoding") |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
270 | process = QProcess() |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
271 | process.setWorkingDirectory(repodir) |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
272 | process.start('hg', args) |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
273 | procStarted = process.waitForStarted() |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
274 | if procStarted: |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
275 | finished = process.waitForFinished(30000) |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
276 | if finished and process.exitCode() == 0: |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
277 | output = \ |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
278 | str(process.readAllStandardOutput(), ioEncoding, 'replace') |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
279 | |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
280 | for line in output.splitlines(): |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
281 | if line.startswith(" "): |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
282 | l = line.strip().split() |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
283 | del l[-1] |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
284 | name = " ".join(l) |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
285 | bookmarksList.append(name) |
1018
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
286 | |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
287 | return bookmarksList |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
288 | |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
289 | def hgBookmarkPull(self, name): |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
290 | """ |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
291 | Public method to pull a bookmark from a remote repository. |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
292 | |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
293 | @param name file/directory name (string) |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
294 | """ |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
295 | # find the root of the repo |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
296 | repodir = self.vcs.splitPath(name)[0] |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
297 | while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)): |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
298 | repodir = os.path.dirname(repodir) |
1318
6fa303bd65d6
Fixed issues in various Mercurial files that could cause infinite loops on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1253
diff
changeset
|
299 | if os.path.splitdrive(repodir)[1] == os.sep: |
1018
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
300 | return |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
301 | |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
302 | bookmarks = self.__getInOutBookmarks(repodir, True) |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
303 | |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
304 | bookmark, ok = QInputDialog.getItem( |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
305 | None, |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
306 | self.trUtf8("Pull Bookmark"), |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
307 | self.trUtf8("Select the bookmark to be pulled:"), |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
308 | [""] + sorted(bookmarks), |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
309 | 0, True) |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
310 | if ok and bookmark: |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
311 | args = [] |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
312 | args.append('pull') |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
313 | args.append('--bookmark') |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
314 | args.append(bookmark) |
1251
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
315 | |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
316 | dia = HgDialog(self.trUtf8('Pulling bookmark from a remote Mercurial repository'), |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
317 | self.vcs) |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
318 | res = dia.startProcess(args, repodir) |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
319 | if res: |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
320 | dia.exec_() |
1018
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
321 | |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
322 | def hgBookmarkPush(self, name): |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
323 | """ |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
324 | Public method to push a bookmark to a remote repository. |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
325 | |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
326 | @param name file/directory name (string) |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
327 | """ |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
328 | # find the root of the repo |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
329 | repodir = self.vcs.splitPath(name)[0] |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
330 | while not os.path.isdir(os.path.join(repodir, self.vcs.adminDir)): |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
331 | repodir = os.path.dirname(repodir) |
1318
6fa303bd65d6
Fixed issues in various Mercurial files that could cause infinite loops on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1253
diff
changeset
|
332 | if os.path.splitdrive(repodir)[1] == os.sep: |
1018
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
333 | return |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
334 | |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
335 | bookmarks = self.__getInOutBookmarks(repodir, False) |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
336 | |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
337 | bookmark, ok = QInputDialog.getItem( |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
338 | None, |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
339 | self.trUtf8("Push Bookmark"), |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
340 | self.trUtf8("Select the bookmark to be push:"), |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
341 | [""] + sorted(bookmarks), |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
342 | 0, True) |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
343 | if ok and bookmark: |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
344 | args = [] |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
345 | args.append('push') |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
346 | args.append('--bookmark') |
949812411ab8
Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1017
diff
changeset
|
347 | args.append(bookmark) |
1251
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
348 | |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
349 | dia = HgDialog(self.trUtf8('Pushing bookmark to a remote Mercurial repository'), |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
350 | self.vcs) |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
351 | res = dia.startProcess(args, repodir) |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
352 | if res: |
d40491ba96ce
Continued implementing an interface to the Mercurial command server.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1087
diff
changeset
|
353 | dia.exec_() |