Plugins/VcsPlugins/vcsMercurial/hg.py

Thu, 09 Feb 2017 20:03:00 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 09 Feb 2017 20:03:00 +0100
changeset 5501
59ed7b2dd952
parent 5496
d157a2319073
child 5503
20dd5c1e43ec
permissions
-rw-r--r--

Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.

178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
5389
9b1c800daff3 Updated copyright for 2017.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5345
diff changeset
3 # Copyright (c) 2010 - 2017 Detlev Offenbach <detlev@die-offenbachs.de>
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the version control systems interface to Mercurial.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
3145
a9de05d4a22f # __IGNORE_WARNING__ added/ removed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3141
diff changeset
10 from __future__ import unicode_literals
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2405
diff changeset
11 try:
3484
645c12de6b0c Merge with default branch.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3178 3434
diff changeset
12 str = unicode
645c12de6b0c Merge with default branch.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3178 3434
diff changeset
13 except NameError:
3141
72f3bde98c58 SVN/ PySVN plugins fixed. urllib.quote wrapper for unicode characters added. SBS diff fixed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3060
diff changeset
14 pass
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2405
diff changeset
15
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 import os
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 import shutil
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
19 from PyQt5.QtCore import QProcess, pyqtSignal, QFileInfo, QFileSystemWatcher, \
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
20 QCoreApplication
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
21 from PyQt5.QtWidgets import QApplication, QDialog, QInputDialog
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 from E5Gui.E5Application import e5App
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 880
diff changeset
24 from E5Gui import E5MessageBox, E5FileDialog
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25
189
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
26 from QScintilla.MiniEditor import MiniEditor
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
27
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 from VCS.VersionControl import VersionControl
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 from VCS.RepositoryInfoDialog import VcsRepositoryInfoDialog
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 from .HgDialog import HgDialog
2352
21971ebfaaef Added a confirmation dialog to the 'revert' VCS actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2318
diff changeset
32
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 import Utilities
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
35
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 class Hg(VersionControl):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 Class implementing the version control systems interface to Mercurial.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 @signal committed() emitted after the commit action has completed
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
41 @signal activeExtensionsChanged() emitted when the list of active
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
42 extensions has changed
3416
efce6439595a Fixed an issue with Mercurial not realizing some changes of the configuration.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3407
diff changeset
43 @signal iniFileChanged() emitted when a Mercurial/repo configuration file
efce6439595a Fixed an issue with Mercurial not realizing some changes of the configuration.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3407
diff changeset
44 has changed
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 """
495
b31b0bffa5b0 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 417
diff changeset
46 committed = pyqtSignal()
1088
9c84b88cff09 Refined the Mercurial extensions code a little bit to deal with torn of menus in a better way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1085
diff changeset
47 activeExtensionsChanged = pyqtSignal()
3416
efce6439595a Fixed an issue with Mercurial not realizing some changes of the configuration.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3407
diff changeset
48 iniFileChanged = pyqtSignal()
495
b31b0bffa5b0 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 417
diff changeset
49
1880
dbd4d7698310 Added code to ensure, that some eric specific files and directories get ignored
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1855
diff changeset
50 IgnoreFileName = ".hgignore"
dbd4d7698310 Added code to ensure, that some eric specific files and directories get ignored
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1855
diff changeset
51
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
52 def __init__(self, plugin, parent=None, name=None):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 Constructor
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 @param plugin reference to the plugin object
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 @param parent parent widget (QWidget)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 @param name name of this object (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 VersionControl.__init__(self, parent, name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 self.defaultOptions = {
3242
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3231
diff changeset
62 'global': [''],
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3231
diff changeset
63 'commit': [''],
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
64 'checkout': [''],
3242
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3231
diff changeset
65 'update': [''],
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3231
diff changeset
66 'add': [''],
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3231
diff changeset
67 'remove': [''],
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3231
diff changeset
68 'diff': [''],
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3231
diff changeset
69 'log': [''],
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3231
diff changeset
70 'history': [''],
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3231
diff changeset
71 'status': [''],
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3231
diff changeset
72 'tag': [''],
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3231
diff changeset
73 'export': ['']
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 }
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 self.__plugin = plugin
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 self.__ui = parent
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 self.options = self.defaultOptions
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 self.tagsList = []
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 self.branchesList = []
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 self.allTagsBranchesList = []
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
83 self.bookmarksList = []
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 self.showedTags = False
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 self.showedBranches = False
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 self.tagTypeList = [
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
88 'tags',
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
89 'branches',
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 ]
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 self.commandHistory = []
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 if "HG_ASP_DOT_NET_HACK" in os.environ:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 self.adminDir = '_hg'
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 self.adminDir = '.hg'
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 self.log = None
1018
949812411ab8 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1017
diff changeset
100 self.logBrowser = None
3283
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3277
diff changeset
101 self.logBrowserIncoming = None
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3277
diff changeset
102 self.logBrowserOutgoing = None
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 self.diff = None
2838
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
104 self.sbsDiff = None
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 self.status = None
2811
7b2ec3af3505 Added support for the Mercurial 'summary' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
106 self.summary = None
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 self.tagbranchList = None
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 self.annotate = None
1064
10bdbb173c0f Added an entry to the Mercurial menu to edit the user configuration file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
109 self.repoEditor = None
305
5cf9e308f342 Added action to start a Mercurial server to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 276
diff changeset
110 self.serveDlg = None
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
111 self.bookmarksListDlg = None
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
112 self.bookmarksInOutDlg = None
3586
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
113 self.conflictsDlg = None
1064
10bdbb173c0f Added an entry to the Mercurial menu to edit the user configuration file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
114
207
3f889378dede Added some code to inspect incoming patches as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 205
diff changeset
115 self.bundleFile = None
2576
b984efd69f15 Little extension to the Mercurial plug-in to remember the path of the recently used changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2543
diff changeset
116 self.__lastChangeGroupPath = None
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 self.statusCache = {}
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 self.__commitData = {}
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 self.__commitDialog = None
216
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
122
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
123 self.__forgotNames = []
1011
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
124
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
125 self.__activeExtensions = []
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
126
2405
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2352
diff changeset
127 from .HgUtilities import getConfigPath
1011
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
128 self.__iniWatcher = QFileSystemWatcher(self)
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
129 self.__iniWatcher.fileChanged.connect(self.__iniFileChanged)
1811
623b5945226e Fixed an issue in the Mercurial interface causing a warning. if no .hgrc file exists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1767
diff changeset
130 cfgFile = getConfigPath()
623b5945226e Fixed an issue in the Mercurial interface causing a warning. if no .hgrc file exists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1767
diff changeset
131 if os.path.exists(cfgFile):
623b5945226e Fixed an issue in the Mercurial interface causing a warning. if no .hgrc file exists.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1767
diff changeset
132 self.__iniWatcher.addPath(cfgFile)
1011
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
133
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
134 self.__client = None
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
135
3277
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
136 self.__repoDir = ""
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
137 self.__repoIniFile = ""
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
138 self.__defaultConfigured = False
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
139 self.__defaultPushConfigured = False
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
140
1011
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
141 # instantiate the extensions
2405
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2352
diff changeset
142 from .QueuesExtension.queues import Queues
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2352
diff changeset
143 from .FetchExtension.fetch import Fetch
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2352
diff changeset
144 from .PurgeExtension.purge import Purge
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2352
diff changeset
145 from .GpgExtension.gpg import Gpg
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2352
diff changeset
146 from .RebaseExtension.rebase import Rebase
3290
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
147 from .ShelveExtension.shelve import Shelve
3310
a2032ed66aec Started implementing the Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3308
diff changeset
148 from .LargefilesExtension.largefiles import Largefiles
5268
748e4c50523b Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5262
diff changeset
149 from .StripExtension.strip import Strip
5283
06423d65a2b8 Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5268
diff changeset
150 from .HisteditExtension.histedit import Histedit
1011
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
151 self.__extensions = {
1061
3e21869872e3 Fixed PEP-8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1034
diff changeset
152 "mq": Queues(self),
1066
a3dd41fd9ea8 Added support for the Mercurial fetch extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1064
diff changeset
153 "fetch": Fetch(self),
1071
ac0f74c0b870 Added support for the Mercurial purge extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1070
diff changeset
154 "purge": Purge(self),
1075
75bfe8bd4243 Added support for the Mercurial gpg extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1071
diff changeset
155 "gpg": Gpg(self),
1093
47bc4ef30315 Added support for the Mercurial rebase extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1088
diff changeset
156 "rebase": Rebase(self),
3290
dbb53746813f Continued implementing support for the Mercurial Shelve extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3283
diff changeset
157 "shelve": Shelve(self),
5268
748e4c50523b Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5262
diff changeset
158 "largefiles": Largefiles(self),
748e4c50523b Added support for the Mercurial strip extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5262
diff changeset
159 "strip": Strip(self),
5283
06423d65a2b8 Added support for the Mercurial histedit extension.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5268
diff changeset
160 "histedit": Histedit(self),
1011
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
161 }
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 def getPlugin(self):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 Public method to get a reference to the plugin object.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 @return reference to the plugin object (VcsMercurialPlugin)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 return self.__plugin
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
171 def getEncoding(self):
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
172 """
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
173 Public method to get the encoding to be used by Mercurial.
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
174
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
175 @return encoding (string)
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
176 """
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
177 return self.__plugin.getPreferences("Encoding")
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
178
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 def vcsShutdown(self):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 Public method used to shutdown the Mercurial interface.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 if self.log is not None:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 self.log.close()
1018
949812411ab8 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1017
diff changeset
185 if self.logBrowser is not None:
949812411ab8 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1017
diff changeset
186 self.logBrowser.close()
3283
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3277
diff changeset
187 if self.logBrowserIncoming is not None:
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3277
diff changeset
188 self.logBrowserIncoming.close()
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3277
diff changeset
189 if self.logBrowserOutgoing is not None:
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3277
diff changeset
190 self.logBrowserOutgoing.close()
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191 if self.diff is not None:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 self.diff.close()
2838
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
193 if self.sbsDiff is not None:
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
194 self.sbsDiff.close()
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195 if self.status is not None:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 self.status.close()
2811
7b2ec3af3505 Added support for the Mercurial 'summary' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
197 if self.summary is not None:
7b2ec3af3505 Added support for the Mercurial 'summary' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
198 self.summary.close()
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 if self.tagbranchList is not None:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 self.tagbranchList.close()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 if self.annotate is not None:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 self.annotate.close()
305
5cf9e308f342 Added action to start a Mercurial server to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 276
diff changeset
203 if self.serveDlg is not None:
5cf9e308f342 Added action to start a Mercurial server to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 276
diff changeset
204 self.serveDlg.close()
207
3f889378dede Added some code to inspect incoming patches as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 205
diff changeset
205
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
206 if self.bookmarksListDlg is not None:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
207 self.bookmarksListDlg.close()
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
208 if self.bookmarksInOutDlg is not None:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
209 self.bookmarksInOutDlg.close()
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
210
3586
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
211 if self.conflictsDlg is not None:
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
212 self.conflictsDlg.close()
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
213
207
3f889378dede Added some code to inspect incoming patches as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 205
diff changeset
214 if self.bundleFile and os.path.exists(self.bundleFile):
3f889378dede Added some code to inspect incoming patches as well.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 205
diff changeset
215 os.remove(self.bundleFile)
1011
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
216
1076
6fb76985422b Changed code to close torn off submenus of the Mercurial project menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1075
diff changeset
217 # shut down the project helpers
6fb76985422b Changed code to close torn off submenus of the Mercurial project menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1075
diff changeset
218 self.__projectHelper.shutdown()
6fb76985422b Changed code to close torn off submenus of the Mercurial project menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1075
diff changeset
219
1011
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
220 # shut down the extensions
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
221 for extension in self.__extensions.values():
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
222 extension.shutdown()
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
223
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
224 # shut down the client
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
225 self.__client and self.__client.stopServer()
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
226
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
227 def getClient(self):
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
228 """
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
229 Public method to get a reference to the command server interface.
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
230
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
231 @return reference to the client (HgClient)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
232 """
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
233 return self.__client
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
235 def initCommand(self, command):
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
236 """
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
237 Public method to initialize a command arguments list.
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
238
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
239 @param command command name (string)
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
240 @return list of command options (list of string)
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
241 """
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
242 args = [command]
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
243 self.addArguments(args, self.__plugin.getGlobalOptions())
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
244 return args
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
245
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
246 def vcsExists(self):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
247 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
248 Public method used to test for the presence of the hg executable.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
249
5292
ac8b476ba122 Added support for host fingerprints in the hostsecurity section of the Mercurial configuration file (as of hg 3.9.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5284
diff changeset
250 @return flag indicating the existence (boolean) and an error message
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
251 (string)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
252 """
5292
ac8b476ba122 Added support for host fingerprints in the hostsecurity section of the Mercurial configuration file (as of hg 3.9.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5284
diff changeset
253 from .HgUtilities import hgVersion
ac8b476ba122 Added support for host fingerprints in the hostsecurity section of the Mercurial configuration file (as of hg 3.9.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5284
diff changeset
254
ac8b476ba122 Added support for host fingerprints in the hostsecurity section of the Mercurial configuration file (as of hg 3.9.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5284
diff changeset
255 self.versionStr, self.version, errMsg = hgVersion(self.__plugin)
ac8b476ba122 Added support for host fingerprints in the hostsecurity section of the Mercurial configuration file (as of hg 3.9.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5284
diff changeset
256 hgExists = errMsg == ""
ac8b476ba122 Added support for host fingerprints in the hostsecurity section of the Mercurial configuration file (as of hg 3.9.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5284
diff changeset
257 if hgExists:
ac8b476ba122 Added support for host fingerprints in the hostsecurity section of the Mercurial configuration file (as of hg 3.9.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5284
diff changeset
258 self.__getExtensionsInfo()
ac8b476ba122 Added support for host fingerprints in the hostsecurity section of the Mercurial configuration file (as of hg 3.9.0).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5284
diff changeset
259 return hgExists, errMsg
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
260
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
261 def vcsInit(self, vcsDir, noDialog=False):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
262 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
263 Public method used to initialize the mercurial repository.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
264
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
265 The initialization is done, when a project is converted into a
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
266 Mercurial controlled project. Therefore we always return TRUE without
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
267 doing anything.
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
268
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
269 @param vcsDir name of the VCS directory (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
270 @param noDialog flag indicating quiet operations (boolean)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
271 @return always TRUE
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
272 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
273 return True
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
274
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
275 def vcsConvertProject(self, vcsDataDict, project):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
276 """
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
277 Public method to convert an uncontrolled project to a version
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
278 controlled project.
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
279
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
280 @param vcsDataDict dictionary of data required for the conversion
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
281 @param project reference to the project object
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
282 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
283 success = self.vcsImport(vcsDataDict, project.ppath)[0]
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
284 if not success:
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
285 E5MessageBox.critical(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
286 self.__ui,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
287 self.tr("Create project repository"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
288 self.tr(
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
289 """The project repository could not be created."""))
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
290 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
291 pfn = project.pfile
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
292 if not os.path.isfile(pfn):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
293 pfn += "z"
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
294 project.closeProject()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
295 project.openProject(pfn)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
296
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
297 def vcsImport(self, vcsDataDict, projectDir, noDialog=False):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
298 """
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
299 Public method used to import the project into the Mercurial repository.
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
300
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
301 @param vcsDataDict dictionary of data required for the import
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
302 @param projectDir project directory (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
303 @param noDialog flag indicating quiet operations
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
304 @return flag indicating an execution without errors (boolean)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
305 and a flag indicating the version controll status (boolean)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
306 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
307 msg = vcsDataDict["message"]
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
308 if not msg:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
309 msg = '***'
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
310
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
311 args = self.initCommand("init")
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
312 args.append(projectDir)
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
313 # init is not possible with the command server
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
314 dia = HgDialog(self.tr('Creating Mercurial repository'), self)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
315 res = dia.startProcess(args)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
316 if res:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
317 dia.exec_()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
318 status = dia.normalExit()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
319
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
320 if status:
1906
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
321 ignoreName = os.path.join(projectDir, Hg.IgnoreFileName)
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
322 if not os.path.exists(ignoreName):
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
323 status = self.hgCreateIgnoreFile(projectDir)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
324
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
325 if status:
3328
15aaa8d3a840 Fixed a bug in the Mercurial interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3315
diff changeset
326 args = self.initCommand("commit")
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
327 args.append('--addremove')
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
328 args.append('--message')
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
329 args.append(msg)
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
330 dia = HgDialog(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
331 self.tr('Initial commit to Mercurial repository'),
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
332 self)
966
890ec4c04ffe Fixed an issue with the Mercurial plug-in creating a new project with Mercurial VCS.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 963
diff changeset
333 res = dia.startProcess(args, projectDir)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
334 if res:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
335 dia.exec_()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
336 status = dia.normalExit()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
337
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
338 return status, False
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
339
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
340 def vcsCheckout(self, vcsDataDict, projectDir, noDialog=False):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
341 """
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
342 Public method used to check the project out of a Mercurial repository
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
343 (clone).
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
344
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
345 @param vcsDataDict dictionary of data required for the checkout
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
346 @param projectDir project directory to create (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
347 @param noDialog flag indicating quiet operations
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
348 @return flag indicating an execution without errors (boolean)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
349 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
350 noDialog = False
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
351 try:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
352 rev = vcsDataDict["revision"]
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
353 except KeyError:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
354 rev = None
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
355 vcsUrl = self.hgNormalizeURL(vcsDataDict["url"])
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
356 if vcsUrl.startswith('/'):
417
459855d3066e Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
357 vcsUrl = 'file://{0}'.format(vcsUrl)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
358 elif vcsUrl[1] in ['|', ':']:
417
459855d3066e Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
359 vcsUrl = 'file:///{0}'.format(vcsUrl)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
360
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
361 args = self.initCommand("clone")
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
362 if rev:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
363 args.append("--rev")
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
364 args.append(rev)
3315
bd1a25ead18d Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3311
diff changeset
365 if vcsDataDict["largefiles"]:
bd1a25ead18d Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3311
diff changeset
366 args.append("--all-largefiles")
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
367 args.append(self.__hgURL(vcsUrl))
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
368 args.append(projectDir)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
369
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
370 if noDialog:
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
371 if self.__client is None:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
372 return self.startSynchronizedProcess(QProcess(), 'hg', args)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
373 else:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
374 out, err = self.__client.runcommand(args)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
375 return err == ""
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
376 else:
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
377 dia = HgDialog(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
378 self.tr('Cloning project from a Mercurial repository'),
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
379 self)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
380 res = dia.startProcess(args)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
381 if res:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
382 dia.exec_()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
383 return dia.normalExit()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
384
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
385 def vcsExport(self, vcsDataDict, projectDir):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
386 """
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
387 Public method used to export a directory from the Mercurial repository.
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
388
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
389 @param vcsDataDict dictionary of data required for the checkout
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
390 @param projectDir project directory to create (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
391 @return flag indicating an execution without errors (boolean)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
392 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
393 status = self.vcsCheckout(vcsDataDict, projectDir)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
394 shutil.rmtree(os.path.join(projectDir, self.adminDir), True)
3260
37bbdfba30bc Corrected a little inaccuracy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3256
diff changeset
395 if os.path.exists(os.path.join(projectDir, Hg.IgnoreFileName)):
37bbdfba30bc Corrected a little inaccuracy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3256
diff changeset
396 os.remove(os.path.join(projectDir, Hg.IgnoreFileName))
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
397 return status
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
398
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
399 def vcsCommit(self, name, message, noDialog=False, closeBranch=False,
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
400 mq=False):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
401 """
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
402 Public method used to make the change of a file/directory permanent
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
403 in the Mercurial repository.
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
404
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
405 @param name file/directory name to be committed (string or list of
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
406 strings)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
407 @param message message for this operation (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
408 @param noDialog flag indicating quiet operations
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
409 @keyparam closeBranch flag indicating a close branch commit (boolean)
2815
53c1d1f9ec86 Started to implement support for Mercurial queue repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2811
diff changeset
410 @keyparam mq flag indicating a queue commit (boolean)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
411 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
412 msg = message
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
413
2815
53c1d1f9ec86 Started to implement support for Mercurial queue repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2811
diff changeset
414 if mq:
53c1d1f9ec86 Started to implement support for Mercurial queue repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2811
diff changeset
415 # ensure dialog is shown for a queue commit
53c1d1f9ec86 Started to implement support for Mercurial queue repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2811
diff changeset
416 noDialog = False
53c1d1f9ec86 Started to implement support for Mercurial queue repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2811
diff changeset
417
3353
ddc966a494b0 Added capability to commit a new branch directly without the need to select the commit menu entry.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3349
diff changeset
418 if not noDialog:
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
419 # call CommitDialog and get message from there
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
420 if self.__commitDialog is None:
2405
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2352
diff changeset
421 from .HgCommitDialog import HgCommitDialog
3353
ddc966a494b0 Added capability to commit a new branch directly without the need to select the commit menu entry.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3349
diff changeset
422 self.__commitDialog = HgCommitDialog(self, msg, mq, self.__ui)
495
b31b0bffa5b0 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 417
diff changeset
423 self.__commitDialog.accepted.connect(self.__vcsCommit_Step2)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
424 self.__commitDialog.show()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
425 self.__commitDialog.raise_()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
426 self.__commitDialog.activateWindow()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
427
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
428 self.__commitData["name"] = name
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
429 self.__commitData["msg"] = msg
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
430 self.__commitData["noDialog"] = noDialog
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
431 self.__commitData["closeBranch"] = closeBranch
2815
53c1d1f9ec86 Started to implement support for Mercurial queue repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2811
diff changeset
432 self.__commitData["mq"] = mq
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
433
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
434 if noDialog:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
435 self.__vcsCommit_Step2()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
436
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
437 def __vcsCommit_Step2(self):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
438 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
439 Private slot performing the second step of the commit action.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
440 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
441 name = self.__commitData["name"]
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
442 msg = self.__commitData["msg"]
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
443 noDialog = self.__commitData["noDialog"]
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
444 closeBranch = self.__commitData["closeBranch"]
2815
53c1d1f9ec86 Started to implement support for Mercurial queue repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2811
diff changeset
445 mq = self.__commitData["mq"]
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
446
2222
105f425944a2 Extended the commit of all supported version control system interfaces to check for unsaved changes, that would otherwise be forgotten.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1990
diff changeset
447 if not noDialog:
105f425944a2 Extended the commit of all supported version control system interfaces to check for unsaved changes, that would otherwise be forgotten.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1990
diff changeset
448 # check, if there are unsaved changes, that should be committed
105f425944a2 Extended the commit of all supported version control system interfaces to check for unsaved changes, that would otherwise be forgotten.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1990
diff changeset
449 if isinstance(name, list):
105f425944a2 Extended the commit of all supported version control system interfaces to check for unsaved changes, that would otherwise be forgotten.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1990
diff changeset
450 nameList = name
105f425944a2 Extended the commit of all supported version control system interfaces to check for unsaved changes, that would otherwise be forgotten.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1990
diff changeset
451 else:
105f425944a2 Extended the commit of all supported version control system interfaces to check for unsaved changes, that would otherwise be forgotten.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1990
diff changeset
452 nameList = [name]
105f425944a2 Extended the commit of all supported version control system interfaces to check for unsaved changes, that would otherwise be forgotten.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1990
diff changeset
453 ok = True
105f425944a2 Extended the commit of all supported version control system interfaces to check for unsaved changes, that would otherwise be forgotten.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1990
diff changeset
454 for nam in nameList:
105f425944a2 Extended the commit of all supported version control system interfaces to check for unsaved changes, that would otherwise be forgotten.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1990
diff changeset
455 # check for commit of the project
105f425944a2 Extended the commit of all supported version control system interfaces to check for unsaved changes, that would otherwise be forgotten.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1990
diff changeset
456 if os.path.isdir(nam):
105f425944a2 Extended the commit of all supported version control system interfaces to check for unsaved changes, that would otherwise be forgotten.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1990
diff changeset
457 project = e5App().getObject("Project")
105f425944a2 Extended the commit of all supported version control system interfaces to check for unsaved changes, that would otherwise be forgotten.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1990
diff changeset
458 if nam == project.getProjectPath():
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
459 ok &= \
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
460 project.checkAllScriptsDirty(
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
461 reportSyntaxErrors=True) and \
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
462 project.checkDirty()
2222
105f425944a2 Extended the commit of all supported version control system interfaces to check for unsaved changes, that would otherwise be forgotten.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1990
diff changeset
463 continue
105f425944a2 Extended the commit of all supported version control system interfaces to check for unsaved changes, that would otherwise be forgotten.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1990
diff changeset
464 elif os.path.isfile(nam):
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
465 editor = \
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
466 e5App().getObject("ViewManager").getOpenEditor(nam)
2222
105f425944a2 Extended the commit of all supported version control system interfaces to check for unsaved changes, that would otherwise be forgotten.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1990
diff changeset
467 if editor:
2280
8e85ca3fabe7 Fixed a few PEP-8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2278
diff changeset
468 ok &= editor.checkDirty()
2222
105f425944a2 Extended the commit of all supported version control system interfaces to check for unsaved changes, that would otherwise be forgotten.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1990
diff changeset
469 if not ok:
105f425944a2 Extended the commit of all supported version control system interfaces to check for unsaved changes, that would otherwise be forgotten.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1990
diff changeset
470 break
105f425944a2 Extended the commit of all supported version control system interfaces to check for unsaved changes, that would otherwise be forgotten.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1990
diff changeset
471
105f425944a2 Extended the commit of all supported version control system interfaces to check for unsaved changes, that would otherwise be forgotten.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1990
diff changeset
472 if not ok:
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
473 res = E5MessageBox.yesNo(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
474 self.__ui,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
475 self.tr("Commit Changes"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
476 self.tr(
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
477 """The commit affects files, that have unsaved"""
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
478 """ changes. Shall the commit be continued?"""),
2280
8e85ca3fabe7 Fixed a few PEP-8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2278
diff changeset
479 icon=E5MessageBox.Warning)
2222
105f425944a2 Extended the commit of all supported version control system interfaces to check for unsaved changes, that would otherwise be forgotten.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1990
diff changeset
480 if not res:
105f425944a2 Extended the commit of all supported version control system interfaces to check for unsaved changes, that would otherwise be forgotten.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1990
diff changeset
481 return
105f425944a2 Extended the commit of all supported version control system interfaces to check for unsaved changes, that would otherwise be forgotten.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1990
diff changeset
482
4487
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
483 if isinstance(name, list):
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
484 dname, fnames = self.splitPathList(name)
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
485 else:
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
486 dname, fname = self.splitPath(name)
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
487
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
488 # find the root of the repo
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
489 repodir = dname
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
490 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
491 repodir = os.path.dirname(repodir)
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
492 if os.path.splitdrive(repodir)[1] == os.sep:
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
493 return
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
494
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
495 if self.__commitDialog is not None:
5330
381665763704 Added possibility to enter a commit author and commit date/time to the Mercurial commit dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5329
diff changeset
496 msg, amend, commitSubrepositories, author, dateTime = \
5329
ebec303b4e50 Refactored the Mercurial commit dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5328
diff changeset
497 self.__commitDialog.getCommitData()
2318
3a3ee7cc2ad6 Changed some signal handlings (disconnect).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
498 self.__commitDialog.deleteLater()
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
499 self.__commitDialog = None
4487
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
500 if amend and not msg:
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
501 msg = self.__getMostRecentCommitMessage(repodir)
1855
93bf1823466a Added support for amending commits as of Mercurial 2.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1811
diff changeset
502 else:
93bf1823466a Added support for amending commits as of Mercurial 2.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1811
diff changeset
503 amend = False
1906
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
504 commitSubrepositories = False
5330
381665763704 Added possibility to enter a commit author and commit date/time to the Mercurial commit dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5329
diff changeset
505 author = ""
381665763704 Added possibility to enter a commit author and commit date/time to the Mercurial commit dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5329
diff changeset
506 dateTime = ""
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
507
1855
93bf1823466a Added support for amending commits as of Mercurial 2.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1811
diff changeset
508 if not msg and not amend:
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
509 msg = '***'
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
510
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
511 args = self.initCommand("commit")
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
512 args.append("-v")
2815
53c1d1f9ec86 Started to implement support for Mercurial queue repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2811
diff changeset
513 if mq:
53c1d1f9ec86 Started to implement support for Mercurial queue repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2811
diff changeset
514 args.append("--mq")
53c1d1f9ec86 Started to implement support for Mercurial queue repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2811
diff changeset
515 else:
53c1d1f9ec86 Started to implement support for Mercurial queue repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2811
diff changeset
516 if closeBranch:
53c1d1f9ec86 Started to implement support for Mercurial queue repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2811
diff changeset
517 args.append("--close-branch")
53c1d1f9ec86 Started to implement support for Mercurial queue repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2811
diff changeset
518 if amend:
53c1d1f9ec86 Started to implement support for Mercurial queue repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2811
diff changeset
519 args.append("--amend")
53c1d1f9ec86 Started to implement support for Mercurial queue repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2811
diff changeset
520 if commitSubrepositories:
53c1d1f9ec86 Started to implement support for Mercurial queue repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2811
diff changeset
521 args.append("--subrepos")
5330
381665763704 Added possibility to enter a commit author and commit date/time to the Mercurial commit dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5329
diff changeset
522 if author:
381665763704 Added possibility to enter a commit author and commit date/time to the Mercurial commit dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5329
diff changeset
523 args.append("--user")
381665763704 Added possibility to enter a commit author and commit date/time to the Mercurial commit dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5329
diff changeset
524 args.append(author)
381665763704 Added possibility to enter a commit author and commit date/time to the Mercurial commit dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5329
diff changeset
525 if dateTime:
381665763704 Added possibility to enter a commit author and commit date/time to the Mercurial commit dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5329
diff changeset
526 args.append("--date")
381665763704 Added possibility to enter a commit author and commit date/time to the Mercurial commit dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5329
diff changeset
527 args.append(dateTime)
1855
93bf1823466a Added support for amending commits as of Mercurial 2.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1811
diff changeset
528 if msg:
93bf1823466a Added support for amending commits as of Mercurial 2.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1811
diff changeset
529 args.append("--message")
93bf1823466a Added support for amending commits as of Mercurial 2.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1811
diff changeset
530 args.append(msg)
1243
d68d8b2a37b3 Fixed an issue in hg.py causing single file commits to fail.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1240
diff changeset
531 if self.__client:
d68d8b2a37b3 Fixed an issue in hg.py causing single file commits to fail.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1240
diff changeset
532 if isinstance(name, list):
d68d8b2a37b3 Fixed an issue in hg.py causing single file commits to fail.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1240
diff changeset
533 self.addArguments(args, name)
d68d8b2a37b3 Fixed an issue in hg.py causing single file commits to fail.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1240
diff changeset
534 else:
1378
f18a99689f2a Fixed an issue in the Mercurial command line server interface code of commit causing a commit of a merge to fail.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1318
diff changeset
535 if dname != repodir or fname != ".":
f18a99689f2a Fixed an issue in the Mercurial command line server interface code of commit causing a commit of a merge to fail.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1318
diff changeset
536 args.append(name)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
537 else:
1243
d68d8b2a37b3 Fixed an issue in hg.py causing single file commits to fail.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1240
diff changeset
538 if isinstance(name, list):
d68d8b2a37b3 Fixed an issue in hg.py causing single file commits to fail.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1240
diff changeset
539 self.addArguments(args, fnames)
d68d8b2a37b3 Fixed an issue in hg.py causing single file commits to fail.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1240
diff changeset
540 else:
d68d8b2a37b3 Fixed an issue in hg.py causing single file commits to fail.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1240
diff changeset
541 if dname != repodir or fname != ".":
d68d8b2a37b3 Fixed an issue in hg.py causing single file commits to fail.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1240
diff changeset
542 args.append(fname)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
543
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
544 if noDialog:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
545 self.startSynchronizedProcess(QProcess(), "hg", args, dname)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
546 else:
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
547 dia = HgDialog(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
548 self.tr('Committing changes to Mercurial repository'),
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
549 self)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
550 res = dia.startProcess(args, dname)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
551 if res:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
552 dia.exec_()
495
b31b0bffa5b0 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 417
diff changeset
553 self.committed.emit()
216
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
554 if self.__forgotNames:
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
555 model = e5App().getObject("Project").getModel()
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
556 for name in self.__forgotNames:
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
557 model.updateVCSStatus(name)
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
558 self.__forgotNames = []
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
559 self.checkVCSStatus()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
560
4487
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
561 def __getMostRecentCommitMessage(self, repodir):
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
562 """
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
563 Private method to get the most recent commit message.
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
564
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
565 Note: This message is extracted from the parent commit of the
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
566 working directory.
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
567
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
568 @param repodir path containing the repository
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
569 @type str
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
570 @return most recent commit message
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
571 @rtype str
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
572 """
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
573 args = self.initCommand("log")
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
574 args.append("--rev")
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
575 args.append(".")
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
576 args.append('--template')
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
577 args.append('{desc}')
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
578
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
579 output = ""
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
580 if self.__client is None:
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
581 process = QProcess()
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
582 process.setWorkingDirectory(repodir)
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
583 process.start('hg', args)
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
584 procStarted = process.waitForStarted(5000)
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
585 if procStarted:
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
586 finished = process.waitForFinished(30000)
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
587 if finished and process.exitCode() == 0:
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
588 output = str(process.readAllStandardOutput(),
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
589 self.getEncoding(), 'replace')
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
590 else:
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
591 output, error = self.__client.runcommand(args)
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
592
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
593 return output
4ba7a8ab24f2 Fixed an issue with the Mercurial commit command when amending a commit but not given a commit message.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4409
diff changeset
594
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
595 def vcsUpdate(self, name, noDialog=False, revision=None):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
596 """
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
597 Public method used to update a file/directory with the Mercurial
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
598 repository.
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
599
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
600 @param name file/directory name to be updated (string or list of
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
601 strings)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
602 @param noDialog flag indicating quiet operations (boolean)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
603 @keyparam revision revision to update to (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
604 @return flag indicating, that the update contained an add
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
605 or delete (boolean)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
606 """
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
607 args = self.initCommand("update")
694
d482fc1249b0 Improved the Mercurial plugi-in to better indicate a changed project file after a pull --update and update.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 660
diff changeset
608 if "-v" not in args and "--verbose" not in args:
d482fc1249b0 Improved the Mercurial plugi-in to better indicate a changed project file after a pull --update and update.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 660
diff changeset
609 args.append("-v")
3382
de914da071c8 Fixed a little issue in the Mercurial interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3359
diff changeset
610 if revision:
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
611 args.append("-r")
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
612 args.append(revision)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
613
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
614 if isinstance(name, list):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
615 dname, fnames = self.splitPathList(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
616 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
617 dname, fname = self.splitPath(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
618
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
619 # find the root of the repo
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
620 repodir = dname
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
621 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
622 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: 1315
diff changeset
623 if os.path.splitdrive(repodir)[1] == os.sep:
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
624 return False
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
625
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
626 if noDialog:
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
627 if self.__client is None:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
628 self.startSynchronizedProcess(QProcess(), 'hg', args, repodir)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
629 else:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
630 out, err = self.__client.runcommand(args)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
631 res = False
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
632 else:
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
633 dia = HgDialog(self.tr(
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
634 'Synchronizing with the Mercurial repository'),
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
635 self)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
636 res = dia.startProcess(args, repodir)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
637 if res:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
638 dia.exec_()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
639 res = dia.hasAddOrDelete()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
640 self.checkVCSStatus()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
641 return res
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
642
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
643 def vcsAdd(self, name, isDir=False, noDialog=False):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
644 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
645 Public method used to add a file/directory to the Mercurial repository.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
646
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
647 @param name file/directory name to be added (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
648 @param isDir flag indicating name is a directory (boolean)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
649 @param noDialog flag indicating quiet operations
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
650 """
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
651 args = self.initCommand("add")
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
652 args.append("-v")
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
653
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
654 if isinstance(name, list):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
655 if isDir:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
656 dname, fname = os.path.split(name[0])
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
657 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
658 dname, fnames = self.splitPathList(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
659 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
660 if isDir:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
661 dname, fname = os.path.split(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
662 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
663 dname, fname = self.splitPath(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
664
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
665 # find the root of the repo
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
666 repodir = dname
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
667 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
668 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: 1315
diff changeset
669 if os.path.splitdrive(repodir)[1] == os.sep:
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
670 return
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
671
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
672 if isinstance(name, list):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
673 self.addArguments(args, name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
674 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
675 args.append(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
676
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
677 if noDialog:
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
678 if self.__client is None:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
679 self.startSynchronizedProcess(QProcess(), 'hg', args, repodir)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
680 else:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
681 out, err = self.__client.runcommand(args)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
682 else:
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 553
diff changeset
683 dia = HgDialog(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
684 self.tr(
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
685 'Adding files/directories to the Mercurial repository'),
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
686 self)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
687 res = dia.startProcess(args, repodir)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
688 if res:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
689 dia.exec_()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
690
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
691 def vcsAddBinary(self, name, isDir=False):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
692 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
693 Public method used to add a file/directory in binary mode to the
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
694 Mercurial repository.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
695
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
696 @param name file/directory name to be added (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
697 @param isDir flag indicating name is a directory (boolean)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
698 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
699 self.vcsAdd(name, isDir)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
700
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
701 def vcsAddTree(self, path):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
702 """
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
703 Public method to add a directory tree rooted at path to the Mercurial
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
704 repository.
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
705
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
706 @param path root directory of the tree to be added (string or list of
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
707 strings))
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
708 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
709 self.vcsAdd(path, isDir=False)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
710
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
711 def vcsRemove(self, name, project=False, noDialog=False):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
712 """
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
713 Public method used to remove a file/directory from the Mercurial
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
714 repository.
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
715
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
716 The default operation is to remove the local copy as well.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
717
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
718 @param name file/directory name to be removed (string or list of
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
719 strings))
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
720 @param project flag indicating deletion of a project tree (boolean)
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
721 (not needed)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
722 @param noDialog flag indicating quiet operations
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
723 @return flag indicating successfull operation (boolean)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
724 """
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
725 args = self.initCommand("remove")
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
726 args.append("-v")
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
727 if noDialog and '--force' not in args:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
728 args.append('--force')
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
729
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
730 if isinstance(name, list):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
731 dname, fnames = self.splitPathList(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
732 self.addArguments(args, name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
733 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
734 dname, fname = self.splitPath(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
735 args.append(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
736
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
737 # find the root of the repo
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
738 repodir = dname
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
739 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
740 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: 1315
diff changeset
741 if os.path.splitdrive(repodir)[1] == os.sep:
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
742 return False
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
743
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
744 if noDialog:
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
745 if self.__client is None:
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
746 res = self.startSynchronizedProcess(
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
747 QProcess(), 'hg', args, repodir)
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
748 else:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
749 out, err = self.__client.runcommand(args)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
750 res = err == ""
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
751 else:
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 553
diff changeset
752 dia = HgDialog(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
753 self.tr(
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
754 'Removing files/directories from the Mercurial'
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
755 ' repository'),
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
756 self)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
757 res = dia.startProcess(args, repodir)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
758 if res:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
759 dia.exec_()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
760 res = dia.normalExitWithoutErrors()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
761
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
762 return res
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
763
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
764 def vcsMove(self, name, project, target=None, noDialog=False):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
765 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
766 Public method used to move a file/directory.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
767
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
768 @param name file/directory name to be moved (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
769 @param project reference to the project object
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
770 @param target new name of the file/directory (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
771 @param noDialog flag indicating quiet operations
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
772 @return flag indicating successfull operation (boolean)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
773 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
774 isDir = os.path.isdir(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
775
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
776 res = False
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
777 if noDialog:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
778 if target is None:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
779 return False
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
780 force = True
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
781 accepted = True
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
782 else:
2405
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2352
diff changeset
783 from .HgCopyDialog import HgCopyDialog
3306
0a4e5082cbc6 Last changes to the Mercurial shelve extension interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3305
diff changeset
784 dlg = HgCopyDialog(name, None, True)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
785 accepted = dlg.exec_() == QDialog.Accepted
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
786 if accepted:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
787 target, force = dlg.getData()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
788
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
789 if accepted:
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
790 args = self.initCommand("rename")
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
791 args.append("-v")
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
792 if force:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
793 args.append('--force')
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
794 args.append(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
795 args.append(target)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
796
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
797 dname, fname = self.splitPath(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
798 # find the root of the repo
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
799 repodir = dname
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
800 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
801 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: 1315
diff changeset
802 if os.path.splitdrive(repodir)[1] == os.sep:
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
803 return False
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
804
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
805 if noDialog:
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
806 if self.__client is None:
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
807 res = self.startSynchronizedProcess(
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
808 QProcess(), 'hg', args, repodir)
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
809 else:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
810 out, err = self.__client.runcommand(args)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
811 res = err == ""
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
812 else:
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
813 dia = HgDialog(self.tr('Renaming {0}').format(name), self)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
814 res = dia.startProcess(args, repodir)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
815 if res:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
816 dia.exec_()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
817 res = dia.normalExit()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
818 if res:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
819 if target.startswith(project.getProjectPath()):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
820 if isDir:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
821 project.moveDirectory(name, target)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
822 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
823 project.renameFileInPdata(name, target)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
824 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
825 if isDir:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
826 project.removeDirectory(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
827 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
828 project.removeFile(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
829 return res
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
830
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
831 def vcsDiff(self, name):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
832 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
833 Public method used to view the difference of a file/directory to the
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
834 Mercurial repository.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
835
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
836 If name is a directory and is the project directory, all project files
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
837 are saved first. If name is a file (or list of files), which is/are
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
838 being edited and has unsaved modification, they can be saved or the
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
839 operation may be aborted.
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
840
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
841 @param name file/directory name to be diffed (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
842 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
843 if isinstance(name, list):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
844 names = name[:]
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
845 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
846 names = [name]
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
847 for nam in names:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
848 if os.path.isfile(nam):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
849 editor = e5App().getObject("ViewManager").getOpenEditor(nam)
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
850 if editor and not editor.checkDirty():
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
851 return
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
852 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
853 project = e5App().getObject("Project")
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
854 if nam == project.ppath and not project.saveAllScripts():
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
855 return
4126
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
856 if self.diff is None:
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
857 from .HgDiffDialog import HgDiffDialog
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
858 self.diff = HgDiffDialog(self)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
859 self.diff.show()
4126
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
860 self.diff.raise_()
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
861 QApplication.processEvents()
4072
46fb585f60f2 Extended the diff dialogs of the various VCS interfaces to allow a refresh in certain situations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
862 self.diff.start(name, refreshable=True)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
863
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
864 def vcsStatus(self, name):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
865 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
866 Public method used to view the status of files/directories in the
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
867 Mercurial repository.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
868
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
869 @param name file/directory name(s) to show the status of
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
870 (string or list of strings)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
871 """
4126
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
872 if self.status is None:
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
873 from .HgStatusDialog import HgStatusDialog
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
874 self.status = HgStatusDialog(self)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
875 self.status.show()
4126
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
876 self.status.raise_()
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
877 self.status.start(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
878
3315
bd1a25ead18d Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3311
diff changeset
879 def hgSummary(self, mq=False, largefiles=False):
2811
7b2ec3af3505 Added support for the Mercurial 'summary' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
880 """
7b2ec3af3505 Added support for the Mercurial 'summary' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
881 Public method used to show some summary information of the
7b2ec3af3505 Added support for the Mercurial 'summary' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
882 working directory state.
7b2ec3af3505 Added support for the Mercurial 'summary' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
883
7b2ec3af3505 Added support for the Mercurial 'summary' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
884 @param mq flag indicating to show the queue status as well (boolean)
3359
6b6c224d67d6 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3353
diff changeset
885 @param largefiles flag indicating to show the largefiles status as
6b6c224d67d6 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3353
diff changeset
886 well (boolean)
2811
7b2ec3af3505 Added support for the Mercurial 'summary' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
887 """
4126
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
888 if self.summary is None:
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
889 from .HgSummaryDialog import HgSummaryDialog
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
890 self.summary = HgSummaryDialog(self)
2811
7b2ec3af3505 Added support for the Mercurial 'summary' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
891 self.summary.show()
4126
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
892 self.summary.raise_()
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
893 self.summary.start(self.__projectHelper.getProject().getProjectPath(),
3315
bd1a25ead18d Continued implementing support for Mercurial largefiles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3311
diff changeset
894 mq=mq, largefiles=largefiles)
2811
7b2ec3af3505 Added support for the Mercurial 'summary' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
895
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
896 def vcsTag(self, name, revision=None, tagName=None):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
897 """
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
898 Public method used to set/remove a tag in the Mercurial repository.
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
899
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
900 @param name file/directory name to determine the repo root from
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
901 (string)
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
902 @param revision revision to set tag for (string)
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
903 @param tagName name of the tag (string)
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
904 @return flag indicating a performed tag action (boolean)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
905 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
906 dname, fname = self.splitPath(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
907
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
908 # find the root of the repo
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
909 repodir = dname
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
910 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
911 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: 1315
diff changeset
912 if os.path.splitdrive(repodir)[1] == os.sep:
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
913 return
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
914
2405
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2352
diff changeset
915 from .HgTagDialog import HgTagDialog
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
916 dlg = HgTagDialog(self.hgGetTagsList(repodir, withType=True),
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
917 revision, tagName)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
918 if dlg.exec_() == QDialog.Accepted:
5345
c7c3f9de2d1c Added capability to enforce a Mercurial tagging operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5330
diff changeset
919 tag, revision, tagOp, force = dlg.getParameters()
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
920 else:
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
921 return False
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
922
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
923 args = self.initCommand("tag")
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
924 msgPart = ""
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
925 if tagOp in [HgTagDialog.CreateLocalTag, HgTagDialog.DeleteLocalTag]:
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
926 args.append('--local')
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
927 msgPart = "local "
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
928 else:
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
929 msgPart = "global "
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
930 if tagOp in [HgTagDialog.DeleteGlobalTag, HgTagDialog.DeleteLocalTag]:
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
931 args.append('--remove')
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
932 if tagOp in [HgTagDialog.CreateGlobalTag, HgTagDialog.CreateLocalTag]:
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
933 if revision:
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
934 args.append("--rev")
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
935 args.append(revision)
5345
c7c3f9de2d1c Added capability to enforce a Mercurial tagging operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5330
diff changeset
936 if force:
c7c3f9de2d1c Added capability to enforce a Mercurial tagging operation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5330
diff changeset
937 args.append("--force")
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
938 args.append('--message')
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
939 if tagOp in [HgTagDialog.CreateGlobalTag, HgTagDialog.CreateLocalTag]:
182
5fb26c972892 Changed tagging and branching to not allow spaces in tag/branch name.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 181
diff changeset
940 tag = tag.strip().replace(" ", "_")
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
941 args.append("Created {1}tag <{0}>.".format(tag, msgPart))
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
942 else:
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
943 args.append("Removed {1}tag <{0}>.".format(tag, msgPart))
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
944 args.append(tag)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
945
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
946 dia = HgDialog(self.tr('Tagging in the Mercurial repository'),
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
947 self)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
948 res = dia.startProcess(args, repodir)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
949 if res:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
950 dia.exec_()
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
951
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
952 return True
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
953
1311
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
954 def hgRevert(self, name):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
955 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
956 Public method used to revert changes made to a file/directory.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
957
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
958 @param name file/directory name to be reverted (string)
1311
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
959 @return flag indicating, that the update contained an add
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
960 or delete (boolean)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
961 """
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
962 args = self.initCommand("revert")
1312
12506dba74dc Added configuration option to create backup files when reverting changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1311
diff changeset
963 if not self.getPlugin().getPreferences("CreateBackup"):
12506dba74dc Added configuration option to create backup files when reverting changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1311
diff changeset
964 args.append("--no-backup")
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
965 args.append("-v")
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
966 if isinstance(name, list):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
967 dname, fnames = self.splitPathList(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
968 self.addArguments(args, name)
2352
21971ebfaaef Added a confirmation dialog to the 'revert' VCS actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2318
diff changeset
969 names = name[:]
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
970 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
971 dname, fname = self.splitPath(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
972 args.append(name)
2352
21971ebfaaef Added a confirmation dialog to the 'revert' VCS actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2318
diff changeset
973 names = [name]
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
974
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
975 # find the root of the repo
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
976 repodir = dname
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
977 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
978 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: 1315
diff changeset
979 if os.path.splitdrive(repodir)[1] == os.sep:
1311
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
980 return False
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
981
2352
21971ebfaaef Added a confirmation dialog to the 'revert' VCS actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2318
diff changeset
982 project = e5App().getObject("Project")
21971ebfaaef Added a confirmation dialog to the 'revert' VCS actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2318
diff changeset
983 names = [project.getRelativePath(nam) for nam in names]
21971ebfaaef Added a confirmation dialog to the 'revert' VCS actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2318
diff changeset
984 if names[0]:
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
985 from UI.DeleteFilesConfirmationDialog import \
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
986 DeleteFilesConfirmationDialog
3023
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
987 dlg = DeleteFilesConfirmationDialog(
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
988 self.parent(),
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
989 self.tr("Revert changes"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
990 self.tr(
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
991 "Do you really want to revert all changes to these files"
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
992 " or directories?"),
2352
21971ebfaaef Added a confirmation dialog to the 'revert' VCS actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2318
diff changeset
993 names)
21971ebfaaef Added a confirmation dialog to the 'revert' VCS actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2318
diff changeset
994 yes = dlg.exec_() == QDialog.Accepted
21971ebfaaef Added a confirmation dialog to the 'revert' VCS actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2318
diff changeset
995 else:
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
996 yes = E5MessageBox.yesNo(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
997 None,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
998 self.tr("Revert changes"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
999 self.tr("""Do you really want to revert all changes of"""
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
1000 """ the project?"""))
2352
21971ebfaaef Added a confirmation dialog to the 'revert' VCS actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2318
diff changeset
1001 if yes:
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
1002 dia = HgDialog(self.tr('Reverting changes'), self)
2352
21971ebfaaef Added a confirmation dialog to the 'revert' VCS actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2318
diff changeset
1003 res = dia.startProcess(args, repodir)
21971ebfaaef Added a confirmation dialog to the 'revert' VCS actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2318
diff changeset
1004 if res:
21971ebfaaef Added a confirmation dialog to the 'revert' VCS actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2318
diff changeset
1005 dia.exec_()
21971ebfaaef Added a confirmation dialog to the 'revert' VCS actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2318
diff changeset
1006 res = dia.hasAddOrDelete()
21971ebfaaef Added a confirmation dialog to the 'revert' VCS actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2318
diff changeset
1007 self.checkVCSStatus()
21971ebfaaef Added a confirmation dialog to the 'revert' VCS actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2318
diff changeset
1008 else:
21971ebfaaef Added a confirmation dialog to the 'revert' VCS actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2318
diff changeset
1009 res = False
21971ebfaaef Added a confirmation dialog to the 'revert' VCS actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2318
diff changeset
1010
1311
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
1011 return res
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1012
5496
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
1013 def vcsMerge(self, name, rev=""):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1014 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1015 Public method used to merge a URL/revision into the local project.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1016
5496
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
1017 @param name file/directory name to be merged
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
1018 @type str
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
1019 @keyparam rev revision to merge with
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
1020 @type str
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1021 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1022 dname, fname = self.splitPath(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1023
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1024 # find the root of the repo
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1025 repodir = dname
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1026 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1027 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: 1315
diff changeset
1028 if os.path.splitdrive(repodir)[1] == os.sep:
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1029 return
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1030
5496
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
1031 if not rev:
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
1032 from .HgMergeDialog import HgMergeDialog
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
1033 dlg = HgMergeDialog(self.hgGetTagsList(repodir),
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
1034 self.hgGetBranchesList(repodir),
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
1035 self.hgGetBookmarksList(repodir))
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
1036 if dlg.exec_() == QDialog.Accepted:
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
1037 rev, force = dlg.getParameters()
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
1038 else:
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
1039 return
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1040 else:
5496
d157a2319073 Added a 'Merge' action to the Mercurial log browser action menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5452
diff changeset
1041 force = False
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1042
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1043 args = self.initCommand("merge")
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1044 if force:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1045 args.append("--force")
3256
1a43351889d5 Aded a configuration option to enforce the useage of the internal merge tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3242
diff changeset
1046 if self.getPlugin().getPreferences("InternalMerge"):
1a43351889d5 Aded a configuration option to enforce the useage of the internal merge tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3242
diff changeset
1047 args.append("--tool")
1a43351889d5 Aded a configuration option to enforce the useage of the internal merge tool.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3242
diff changeset
1048 args.append("internal:merge")
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1049 if rev:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1050 args.append("--rev")
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1051 args.append(rev)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1052
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
1053 dia = HgDialog(self.tr('Merging').format(name), self)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1054 res = dia.startProcess(args, repodir)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1055 if res:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1056 dia.exec_()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1057 self.checkVCSStatus()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1058
3586
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1059 def hgReMerge(self, name):
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1060 """
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1061 Public method used to merge a URL/revision into the local project.
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1062
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1063 @param name file/directory name to be merged (string)
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1064 """
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1065 args = self.initCommand("resolve")
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1066 if self.getPlugin().getPreferences("InternalMerge"):
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1067 args.append("--tool")
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1068 args.append("internal:merge")
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1069 if isinstance(name, list):
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1070 dname, fnames = self.splitPathList(name)
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1071 self.addArguments(args, name)
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1072 names = name[:]
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1073 else:
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1074 dname, fname = self.splitPath(name)
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1075 args.append(name)
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1076 names = [name]
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1077
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1078 # find the root of the repo
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1079 repodir = dname
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1080 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1081 repodir = os.path.dirname(repodir)
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1082 if os.path.splitdrive(repodir)[1] == os.sep:
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1083 return
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1084
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1085 project = e5App().getObject("Project")
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1086 names = [project.getRelativePath(nam) for nam in names]
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1087 if names[0]:
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1088 from UI.DeleteFilesConfirmationDialog import \
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1089 DeleteFilesConfirmationDialog
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1090 dlg = DeleteFilesConfirmationDialog(
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1091 self.parent(),
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1092 self.tr("Re-Merge"),
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1093 self.tr(
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1094 "Do you really want to re-merge these files"
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1095 " or directories?"),
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1096 names)
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1097 yes = dlg.exec_() == QDialog.Accepted
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1098 else:
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1099 yes = E5MessageBox.yesNo(
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1100 None,
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1101 self.tr("Re-Merge"),
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1102 self.tr("""Do you really want to re-merge the project?"""))
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1103 if yes:
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1104 dia = HgDialog(self.tr('Re-Merging').format(name), self)
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1105 res = dia.startProcess(args, repodir)
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1106 if res:
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1107 dia.exec_()
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1108 self.checkVCSStatus()
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
1109
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1110 def vcsSwitch(self, name):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1111 """
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
1112 Public method used to switch a working directory to a different
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
1113 revision.
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1114
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1115 @param name directory name to be switched (string)
1083
dc680a0ce221 Extended the code logic for the switch command of the various version control interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1078
diff changeset
1116 @return flag indicating, that the switch contained an add
dc680a0ce221 Extended the code logic for the switch command of the various version control interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1078
diff changeset
1117 or delete (boolean)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1118 """
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1119 dname, fname = self.splitPath(name)
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1120
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1121 # find the root of the repo
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1122 repodir = dname
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1123 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1124 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: 1315
diff changeset
1125 if os.path.splitdrive(repodir)[1] == os.sep:
1083
dc680a0ce221 Extended the code logic for the switch command of the various version control interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1078
diff changeset
1126 return False
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1127
2405
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2352
diff changeset
1128 from .HgRevisionSelectionDialog import HgRevisionSelectionDialog
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1129 dlg = HgRevisionSelectionDialog(self.hgGetTagsList(repodir),
1061
3e21869872e3 Fixed PEP-8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1034
diff changeset
1130 self.hgGetBranchesList(repodir),
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
1131 self.hgGetBookmarksList(repodir),
3407
07966c6b5565 Changed a few Mercurial dialogs asking the user for the selection of a revision to be more accurate.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3382
diff changeset
1132 self.tr("Current branch tip"))
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1133 if dlg.exec_() == QDialog.Accepted:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1134 rev = dlg.getRevision()
1083
dc680a0ce221 Extended the code logic for the switch command of the various version control interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1078
diff changeset
1135 return self.vcsUpdate(name, revision=rev)
dc680a0ce221 Extended the code logic for the switch command of the various version control interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1078
diff changeset
1136
dc680a0ce221 Extended the code logic for the switch command of the various version control interfaces.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1078
diff changeset
1137 return False
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1138
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1139 def vcsRegisteredState(self, name):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1140 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1141 Public method used to get the registered state of a file in the vcs.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1142
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1143 @param name filename to check (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1144 @return a combination of canBeCommited and canBeAdded
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1145 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1146 if name.endswith(os.sep):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1147 name = name[:-1]
240
b0d829cf4234 Fixed an issue with determining the Mercurial status on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 219
diff changeset
1148 name = os.path.normcase(name)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1149 dname, fname = self.splitPath(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1150
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1151 if fname == '.' and os.path.isdir(os.path.join(dname, self.adminDir)):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1152 return self.canBeCommitted
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1153
194
4820fc69705c Improved speed loading projects (with Mercurial).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 192
diff changeset
1154 if name in self.statusCache:
4820fc69705c Improved speed loading projects (with Mercurial).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 192
diff changeset
1155 return self.statusCache[name]
4820fc69705c Improved speed loading projects (with Mercurial).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 192
diff changeset
1156
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1157 # find the root of the repo
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1158 repodir = dname
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1159 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1160 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: 1315
diff changeset
1161 if os.path.splitdrive(repodir)[1] == os.sep:
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1162 return 0
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1163
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1164 args = self.initCommand("status")
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1165 args.append('--all')
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1166 args.append('--noninteractive')
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1167
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1168 output = ""
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1169 if self.__client is None:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1170 process = QProcess()
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1171 process.setWorkingDirectory(repodir)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1172 process.start('hg', args)
2771
281c9b30dd91 Changed all QProcess.waitForStarted() calls to use a 5s timeout (except the debugger interfaces, which have a 10s timeout).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2718
diff changeset
1173 procStarted = process.waitForStarted(5000)
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1174 if procStarted:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1175 finished = process.waitForFinished(30000)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1176 if finished and process.exitCode() == 0:
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1177 output = str(process.readAllStandardOutput(),
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1178 self.getEncoding(), 'replace')
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1179 else:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1180 output, error = self.__client.runcommand(args)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1181
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1182 if output:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1183 for line in output.splitlines():
3675
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1184 if line and line[0] in "MARC!?I":
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1185 flag, path = line.split(" ", 1)
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1186 absname = os.path.join(repodir, os.path.normcase(path))
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1187 if flag not in "?I":
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1188 if fname == '.':
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1189 if absname.startswith(dname + os.path.sep):
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1190 return self.canBeCommitted
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1191 if absname == dname:
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1192 return self.canBeCommitted
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1193 else:
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1194 if absname == name:
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1195 return self.canBeCommitted
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1196
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1197 return self.canBeAdded
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1198
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
1199 def vcsAllRegisteredStates(self, names, dname, shortcut=True):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1200 """
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
1201 Public method used to get the registered states of a number of files
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
1202 in the vcs.
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1203
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
1204 <b>Note:</b> If a shortcut is to be taken, the code will only check,
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
1205 if the named directory has been scanned already. If so, it is assumed,
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
1206 that the states for all files have been populated by the previous run.
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1207
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1208 @param names dictionary with all filenames to be checked as keys
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1209 @param dname directory to check in (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1210 @param shortcut flag indicating a shortcut should be taken (boolean)
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
1211 @return the received dictionary completed with a combination of
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1212 canBeCommited and canBeAdded or None in order to signal an error
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1213 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1214 if dname.endswith(os.sep):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1215 dname = dname[:-1]
205
e5f10cf7fdc9 Fixed an issue with the Mercurial plug-in on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 202
diff changeset
1216 dname = os.path.normcase(dname)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1217
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1218 found = False
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1219 for name in list(self.statusCache.keys()):
192
2c1187ab98ce Changed code to improve speed of the Mercurial plugin for opening a project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 191
diff changeset
1220 if name in names:
2c1187ab98ce Changed code to improve speed of the Mercurial plugin for opening a project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 191
diff changeset
1221 found = True
2c1187ab98ce Changed code to improve speed of the Mercurial plugin for opening a project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 191
diff changeset
1222 names[name] = self.statusCache[name]
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1223
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1224 if not found:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1225 # find the root of the repo
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1226 repodir = dname
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1227 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1228 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: 1315
diff changeset
1229 if os.path.splitdrive(repodir)[1] == os.sep:
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1230 return names
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1231
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1232 args = self.initCommand("status")
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1233 args.append('--all')
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1234 args.append('--noninteractive')
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1235
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1236 output = ""
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1237 if self.__client is None:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1238 process = QProcess()
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1239 process.setWorkingDirectory(dname)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1240 process.start('hg', args)
2771
281c9b30dd91 Changed all QProcess.waitForStarted() calls to use a 5s timeout (except the debugger interfaces, which have a 10s timeout).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2718
diff changeset
1241 procStarted = process.waitForStarted(5000)
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1242 if procStarted:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1243 finished = process.waitForFinished(30000)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1244 if finished and process.exitCode() == 0:
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1245 output = str(process.readAllStandardOutput(),
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1246 self.getEncoding(), 'replace')
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1247 else:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1248 output, error = self.__client.runcommand(args)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1249
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1250 if output:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1251 dirs = [x for x in names.keys() if os.path.isdir(x)]
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1252 for line in output.splitlines():
3675
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1253 if line and line[0] in "MARC!?I":
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1254 flag, path = line.split(" ", 1)
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1255 name = os.path.normcase(os.path.join(repodir, path))
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1256 dirName = os.path.dirname(name)
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1257 if name.startswith(dname):
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1258 if flag not in "?I":
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1259 if name in names:
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1260 names[name] = self.canBeCommitted
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1261 if dirName in names:
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1262 names[dirName] = self.canBeCommitted
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1263 if dirs:
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1264 for d in dirs:
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1265 if name.startswith(d):
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1266 names[d] = self.canBeCommitted
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1267 dirs.remove(d)
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1268 break
192
2c1187ab98ce Changed code to improve speed of the Mercurial plugin for opening a project.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 191
diff changeset
1269 if flag not in "?I":
3675
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1270 self.statusCache[name] = self.canBeCommitted
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1271 self.statusCache[dirName] = self.canBeCommitted
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1272 else:
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1273 self.statusCache[name] = self.canBeAdded
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1274 if dirName not in self.statusCache:
aa48d3e9b008 Fixed an issue in the Mercurial plug-in parsing the status data.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3670
diff changeset
1275 self.statusCache[dirName] = self.canBeAdded
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1276
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1277 return names
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1278
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1279 def clearStatusCache(self):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1280 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1281 Public method to clear the status cache.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1282 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1283 self.statusCache = {}
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1284
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1285 def vcsName(self):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1286 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1287 Public method returning the name of the vcs.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1288
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1289 @return always 'Mercurial' (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1290 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1291 return "Mercurial"
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1292
1880
dbd4d7698310 Added code to ensure, that some eric specific files and directories get ignored
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1855
diff changeset
1293 def vcsInitConfig(self, project):
dbd4d7698310 Added code to ensure, that some eric specific files and directories get ignored
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1855
diff changeset
1294 """
dbd4d7698310 Added code to ensure, that some eric specific files and directories get ignored
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1855
diff changeset
1295 Public method to initialize the VCS configuration.
dbd4d7698310 Added code to ensure, that some eric specific files and directories get ignored
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1855
diff changeset
1296
dbd4d7698310 Added code to ensure, that some eric specific files and directories get ignored
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1855
diff changeset
1297 This method ensures, that an ignore file exists.
dbd4d7698310 Added code to ensure, that some eric specific files and directories get ignored
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1855
diff changeset
1298
dbd4d7698310 Added code to ensure, that some eric specific files and directories get ignored
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1855
diff changeset
1299 @param project reference to the project (Project)
dbd4d7698310 Added code to ensure, that some eric specific files and directories get ignored
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1855
diff changeset
1300 """
1882
70e806f7ebb2 Fixed another issue introduced by the VCS changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1880
diff changeset
1301 ppath = project.getProjectPath()
70e806f7ebb2 Fixed another issue introduced by the VCS changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1880
diff changeset
1302 if ppath:
70e806f7ebb2 Fixed another issue introduced by the VCS changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1880
diff changeset
1303 ignoreName = os.path.join(ppath, Hg.IgnoreFileName)
70e806f7ebb2 Fixed another issue introduced by the VCS changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1880
diff changeset
1304 if not os.path.exists(ignoreName):
70e806f7ebb2 Fixed another issue introduced by the VCS changes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1880
diff changeset
1305 self.hgCreateIgnoreFile(project.getProjectPath(), autoAdd=True)
1880
dbd4d7698310 Added code to ensure, that some eric specific files and directories get ignored
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1855
diff changeset
1306
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1307 def vcsCleanup(self, name):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1308 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1309 Public method used to cleanup the working directory.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1310
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1311 @param name directory name to be cleaned up (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1312 """
1085
ef6102d5fefe Made the Mercurial cleanup patterns configurable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1083
diff changeset
1313 patterns = self.getPlugin().getPreferences("CleanupPatterns").split()
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1314
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1315 entries = []
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1316 for pat in patterns:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1317 entries.extend(Utilities.direntries(name, True, pat))
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1318
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1319 for entry in entries:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1320 try:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1321 os.remove(entry)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1322 except OSError:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1323 pass
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1324
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1325 def vcsCommandLine(self, name):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1326 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1327 Public method used to execute arbitrary mercurial commands.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1328
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1329 @param name directory name of the working directory (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1330 """
2405
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2352
diff changeset
1331 from .HgCommandDialog import HgCommandDialog
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1332 dlg = HgCommandDialog(self.commandHistory, name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1333 if dlg.exec_() == QDialog.Accepted:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1334 command = dlg.getData()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1335 commandList = Utilities.parseOptionString(command)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1336
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1337 # This moves any previous occurrence of these arguments to the head
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1338 # of the list.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1339 if command in self.commandHistory:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1340 self.commandHistory.remove(command)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1341 self.commandHistory.insert(0, command)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1342
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1343 args = []
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1344 self.addArguments(args, commandList)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1345
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1346 # find the root of the repo
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1347 repodir = name
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1348 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1349 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: 1315
diff changeset
1350 if os.path.splitdrive(repodir)[1] == os.sep:
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1351 return
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1352
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
1353 dia = HgDialog(self.tr('Mercurial command'), self)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1354 res = dia.startProcess(args, repodir)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1355 if res:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1356 dia.exec_()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1357
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
1358 def vcsOptionsDialog(self, project, archive, editable=False, parent=None):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1359 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1360 Public method to get a dialog to enter repository info.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1361
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1362 @param project reference to the project object
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1363 @param archive name of the project in the repository (string)
2962
d6c9d1ca2da4 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2844
diff changeset
1364 @param editable flag indicating that the project name is editable
d6c9d1ca2da4 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2844
diff changeset
1365 (boolean)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1366 @param parent parent widget (QWidget)
2962
d6c9d1ca2da4 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2844
diff changeset
1367 @return reference to the instantiated options dialog (HgOptionsDialog)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1368 """
2405
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2352
diff changeset
1369 from .HgOptionsDialog import HgOptionsDialog
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1370 return HgOptionsDialog(self, project, parent)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1371
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
1372 def vcsNewProjectOptionsDialog(self, parent=None):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1373 """
2962
d6c9d1ca2da4 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2844
diff changeset
1374 Public method to get a dialog to enter repository info for getting a
d6c9d1ca2da4 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2844
diff changeset
1375 new project.
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1376
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1377 @param parent parent widget (QWidget)
2962
d6c9d1ca2da4 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2844
diff changeset
1378 @return reference to the instantiated options dialog
d6c9d1ca2da4 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2844
diff changeset
1379 (HgNewProjectOptionsDialog)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1380 """
2405
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2352
diff changeset
1381 from .HgNewProjectOptionsDialog import HgNewProjectOptionsDialog
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1382 return HgNewProjectOptionsDialog(self, parent)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1383
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1384 def vcsRepositoryInfos(self, ppath):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1385 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1386 Public method to retrieve information about the repository.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1387
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1388 @param ppath local path to get the repository infos (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1389 @return string with ready formated info for display (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1390 """
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1391 args = self.initCommand("parents")
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1392 args.append('--template')
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1393 args.append('{rev}:{node|short}@@@{tags}@@@{author|xmlescape}@@@'
1019
d8a9697f78d1 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1018
diff changeset
1394 '{date|isodate}@@@{branches}@@@{bookmarks}\n')
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1395
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1396 output = ""
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1397 if self.__client is None:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1398 process = QProcess()
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1399 process.setWorkingDirectory(ppath)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1400 process.start('hg', args)
2771
281c9b30dd91 Changed all QProcess.waitForStarted() calls to use a 5s timeout (except the debugger interfaces, which have a 10s timeout).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2718
diff changeset
1401 procStarted = process.waitForStarted(5000)
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1402 if procStarted:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1403 finished = process.waitForFinished(30000)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1404 if finished and process.exitCode() == 0:
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1405 output = str(process.readAllStandardOutput(),
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1406 self.getEncoding(), 'replace')
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1407 else:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1408 output, error = self.__client.runcommand(args)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1409
2811
7b2ec3af3505 Added support for the Mercurial 'summary' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
1410 infoBlock = []
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1411 if output:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1412 index = 0
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1413 for line in output.splitlines():
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1414 index += 1
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
1415 changeset, tags, author, date, branches, bookmarks = \
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
1416 line.split("@@@")
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1417 cdate, ctime = date.split()[:2]
2811
7b2ec3af3505 Added support for the Mercurial 'summary' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
1418 info = []
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
1419 info.append(QCoreApplication.translate(
3023
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1420 "mercurial",
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1421 """<tr><td><b>Parent #{0}</b></td><td></td></tr>\n"""
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3023
diff changeset
1422 """<tr><td><b>Changeset</b></td><td>{1}</td></tr>""")
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1423 .format(index, changeset))
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1424 if tags:
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
1425 info.append(QCoreApplication.translate(
3023
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1426 "mercurial",
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3023
diff changeset
1427 """<tr><td><b>Tags</b></td><td>{0}</td></tr>""")
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1428 .format('<br/>'.join(tags.split())))
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1429 if bookmarks:
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
1430 info.append(QCoreApplication.translate(
3023
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1431 "mercurial",
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3023
diff changeset
1432 """<tr><td><b>Bookmarks</b></td><td>{0}</td></tr>""")
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1433 .format('<br/>'.join(bookmarks.split())))
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1434 if branches:
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
1435 info.append(QCoreApplication.translate(
3023
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1436 "mercurial",
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3023
diff changeset
1437 """<tr><td><b>Branches</b></td><td>{0}</td></tr>""")
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1438 .format('<br/>'.join(branches.split())))
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
1439 info.append(QCoreApplication.translate(
3023
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1440 "mercurial",
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1441 """<tr><td><b>Last author</b></td><td>{0}</td></tr>\n"""
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1442 """<tr><td><b>Committed date</b></td><td>{1}</td></tr>\n"""
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3023
diff changeset
1443 """<tr><td><b>Committed time</b></td><td>{2}</td></tr>""")
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1444 .format(author, cdate, ctime))
2811
7b2ec3af3505 Added support for the Mercurial 'summary' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
1445 infoBlock.append("\n".join(info))
7b2ec3af3505 Added support for the Mercurial 'summary' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
1446 if infoBlock:
7b2ec3af3505 Added support for the Mercurial 'summary' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
1447 infoStr = """<tr></tr>{0}""".format("<tr></tr>".join(infoBlock))
7b2ec3af3505 Added support for the Mercurial 'summary' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
1448 else:
7b2ec3af3505 Added support for the Mercurial 'summary' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
1449 infoStr = ""
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1450
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1451 url = ""
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1452 args = self.initCommand("showconfig")
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1453 args.append('paths.default')
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1454
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1455 output = ""
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1456 if self.__client is None:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1457 process.setWorkingDirectory(ppath)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1458 process.start('hg', args)
2771
281c9b30dd91 Changed all QProcess.waitForStarted() calls to use a 5s timeout (except the debugger interfaces, which have a 10s timeout).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2718
diff changeset
1459 procStarted = process.waitForStarted(5000)
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1460 if procStarted:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1461 finished = process.waitForFinished(30000)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1462 if finished and process.exitCode() == 0:
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1463 output = str(process.readAllStandardOutput(),
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1464 self.getEncoding(), 'replace')
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1465 else:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1466 output, error = self.__client.runcommand(args)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1467
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1468 if output:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1469 url = output.splitlines()[0].strip()
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1470 else:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1471 url = ""
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1472
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
1473 return QCoreApplication.translate(
3023
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1474 'mercurial',
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1475 """<h3>Repository information</h3>\n"""
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1476 """<p><table>\n"""
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1477 """<tr><td><b>Mercurial V.</b></td><td>{0}</td></tr>\n"""
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1478 """<tr></tr>\n"""
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1479 """<tr><td><b>URL</b></td><td>{1}</td></tr>\n"""
2811
7b2ec3af3505 Added support for the Mercurial 'summary' command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2771
diff changeset
1480 """{2}"""
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1481 """</table></p>\n"""
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1482 ).format(self.versionStr, url, infoStr)
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1483
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1484 def vcsSupportCommandOptions(self):
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1485 """
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1486 Public method to signal the support of user settable command options.
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1487
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1488 @return flag indicating the support of user settable command options
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1489 (boolean)
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1490 """
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1491 return False
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1492
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
1493 ###########################################################################
1855
93bf1823466a Added support for amending commits as of Mercurial 2.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1811
diff changeset
1494 ## Private Mercurial specific methods are below.
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
1495 ###########################################################################
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1496
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1497 def __hgURL(self, url):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1498 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1499 Private method to format a url for Mercurial.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1500
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1501 @param url unformatted url string (string)
1855
93bf1823466a Added support for amending commits as of Mercurial 2.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1811
diff changeset
1502 @return properly formated url for mercurial (string)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1503 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1504 url = self.hgNormalizeURL(url)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1505 url = url.split(':', 2)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1506 if len(url) == 4:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1507 scheme = url[0]
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1508 user = url[1]
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1509 host = url[2]
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
1510 port, path = url[3].split("/", 1)
417
459855d3066e Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
1511 return "{0}:{1}:{2}:{3}/{4}".format(
3141
72f3bde98c58 SVN/ PySVN plugins fixed. urllib.quote wrapper for unicode characters added. SBS diff fixed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3060
diff changeset
1512 scheme, user, host, port, Utilities.quote(path))
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1513 elif len(url) == 3:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1514 scheme = url[0]
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1515 host = url[1]
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
1516 port, path = url[2].split("/", 1)
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
1517 return "{0}:{1}:{2}/{3}".format(
3141
72f3bde98c58 SVN/ PySVN plugins fixed. urllib.quote wrapper for unicode characters added. SBS diff fixed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3060
diff changeset
1518 scheme, host, port, Utilities.quote(path))
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1519 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1520 scheme = url[0]
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1521 if scheme == "file":
3141
72f3bde98c58 SVN/ PySVN plugins fixed. urllib.quote wrapper for unicode characters added. SBS diff fixed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3060
diff changeset
1522 return "{0}:{1}".format(scheme, Utilities.quote(url[1]))
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1523 else:
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
1524 host, path = url[1][2:].split("/", 1)
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
1525 return "{0}://{1}/{2}".format(
3141
72f3bde98c58 SVN/ PySVN plugins fixed. urllib.quote wrapper for unicode characters added. SBS diff fixed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3060
diff changeset
1526 scheme, host, Utilities.quote(path))
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1527
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1528 def hgNormalizeURL(self, url):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1529 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1530 Public method to normalize a url for Mercurial.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1531
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1532 @param url url string (string)
1855
93bf1823466a Added support for amending commits as of Mercurial 2.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1811
diff changeset
1533 @return properly normalized url for mercurial (string)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1534 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1535 url = url.replace('\\', '/')
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1536 if url.endswith('/'):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1537 url = url[:-1]
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1538 urll = url.split('//')
417
459855d3066e Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 347
diff changeset
1539 return "{0}//{1}".format(urll[0], '/'.join(urll[1:]))
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1540
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1541 def hgCopy(self, name, project):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1542 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1543 Public method used to copy a file/directory.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1544
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1545 @param name file/directory name to be copied (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1546 @param project reference to the project object
1855
93bf1823466a Added support for amending commits as of Mercurial 2.2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1811
diff changeset
1547 @return flag indicating successful operation (boolean)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1548 """
2405
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2352
diff changeset
1549 from .HgCopyDialog import HgCopyDialog
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1550 dlg = HgCopyDialog(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1551 res = False
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1552 if dlg.exec_() == QDialog.Accepted:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1553 target, force = dlg.getData()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1554
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1555 args = self.initCommand("copy")
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1556 args.append("-v")
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1557 args.append(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1558 args.append(target)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1559
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1560 dname, fname = self.splitPath(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1561 # find the root of the repo
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1562 repodir = dname
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1563 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1564 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: 1315
diff changeset
1565 if os.path.splitdrive(repodir)[1] == os.sep:
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1566 return False
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1567
3023
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1568 dia = HgDialog(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
1569 self.tr('Copying {0}').format(name), self)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1570 res = dia.startProcess(args, repodir)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1571 if res:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1572 dia.exec_()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1573 res = dia.normalExit()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1574 if res and \
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1575 target.startswith(project.getProjectPath()):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1576 if os.path.isdir(name):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1577 project.copyDirectory(name, target)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1578 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1579 project.appendFile(target)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1580 return res
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1581
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
1582 def hgGetTagsList(self, repodir, withType=False):
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1583 """
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1584 Public method to get the list of tags.
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1585
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1586 @param repodir directory name of the repository (string)
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
1587 @param withType flag indicating to get the tag type as well (boolean)
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
1588 @return list of tags (list of string) or list of tuples of
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
1589 tag name and flag indicating a local tag (list of tuple of string
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
1590 and boolean), if withType is True
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1591 """
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1592 args = self.initCommand("tags")
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1593 args.append('--verbose')
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1594
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1595 output = ""
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1596 if self.__client is None:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1597 process = QProcess()
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1598 process.setWorkingDirectory(repodir)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1599 process.start('hg', args)
2771
281c9b30dd91 Changed all QProcess.waitForStarted() calls to use a 5s timeout (except the debugger interfaces, which have a 10s timeout).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2718
diff changeset
1600 procStarted = process.waitForStarted(5000)
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1601 if procStarted:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1602 finished = process.waitForFinished(30000)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1603 if finished and process.exitCode() == 0:
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1604 output = str(process.readAllStandardOutput(),
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1605 self.getEncoding(), 'replace')
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1606 else:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1607 output, error = self.__client.runcommand(args)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1608
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
1609 tagsList = []
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1610 if output:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1611 for line in output.splitlines():
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3023
diff changeset
1612 li = line.strip().split()
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3023
diff changeset
1613 if li[-1][0] in "1234567890":
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1614 # last element is a rev:changeset
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3023
diff changeset
1615 del li[-1]
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
1616 isLocal = False
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1617 else:
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3023
diff changeset
1618 del li[-2:]
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
1619 isLocal = True
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3023
diff changeset
1620 name = " ".join(li)
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1621 if name not in ["tip", "default"]:
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
1622 if withType:
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
1623 tagsList.append((name, isLocal))
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
1624 else:
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
1625 tagsList.append(name)
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1626
3185
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
1627 if withType:
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
1628 return tagsList
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
1629 else:
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
1630 if tagsList:
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
1631 self.tagsList = tagsList
d4fa462547bc Enhanced the Mercurial tag dialog and extended the Mercurial log browser to allow tagging of a specific revision
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
1632 return self.tagsList[:]
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1633
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1634 def hgGetBranchesList(self, repodir):
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1635 """
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1636 Public method to get the list of branches.
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1637
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1638 @param repodir directory name of the repository (string)
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1639 @return list of branches (list of string)
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1640 """
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1641 args = self.initCommand("branches")
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1642 args.append('--closed')
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1643
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1644 output = ""
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1645 if self.__client is None:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1646 process = QProcess()
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1647 process.setWorkingDirectory(repodir)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1648 process.start('hg', args)
2771
281c9b30dd91 Changed all QProcess.waitForStarted() calls to use a 5s timeout (except the debugger interfaces, which have a 10s timeout).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2718
diff changeset
1649 procStarted = process.waitForStarted(5000)
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1650 if procStarted:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1651 finished = process.waitForFinished(30000)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1652 if finished and process.exitCode() == 0:
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1653 output = str(process.readAllStandardOutput(),
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1654 self.getEncoding(), 'replace')
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1655 else:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1656 output, error = self.__client.runcommand(args)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1657
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1658 if output:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1659 self.branchesList = []
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1660 for line in output.splitlines():
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3023
diff changeset
1661 li = line.strip().split()
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3023
diff changeset
1662 if li[-1][0] in "1234567890":
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1663 # last element is a rev:changeset
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3023
diff changeset
1664 del li[-1]
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1665 else:
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3023
diff changeset
1666 del li[-2:]
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3023
diff changeset
1667 name = " ".join(li)
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1668 if name not in ["tip", "default"]:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
1669 self.branchesList.append(name)
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1670
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1671 return self.branchesList[:]
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1672
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
1673 def hgListTagBranch(self, path, tags=True):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1674 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1675 Public method used to list the available tags or branches.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1676
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1677 @param path directory name of the project (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1678 @param tags flag indicating listing of branches or tags
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1679 (False = branches, True = tags)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1680 """
2405
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2352
diff changeset
1681 from .HgTagBranchListDialog import HgTagBranchListDialog
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1682 self.tagbranchList = HgTagBranchListDialog(self)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1683 self.tagbranchList.show()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1684 if tags:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1685 if not self.showedTags:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1686 self.showedTags = True
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1687 allTagsBranchesList = self.allTagsBranchesList
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1688 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1689 self.tagsList = []
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1690 allTagsBranchesList = None
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
1691 self.tagbranchList.start(path, tags,
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1692 self.tagsList, allTagsBranchesList)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1693 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1694 if not self.showedBranches:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1695 self.showedBranches = True
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1696 allTagsBranchesList = self.allTagsBranchesList
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1697 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1698 self.branchesList = []
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1699 allTagsBranchesList = None
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
1700 self.tagbranchList.start(path, tags,
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
1701 self.branchesList,
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
1702 self.allTagsBranchesList)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1703
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1704 def hgAnnotate(self, name):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1705 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1706 Public method to show the output of the hg annotate command.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1707
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1708 @param name file name to show the annotations for (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1709 """
4126
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
1710 if self.annotate is None:
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
1711 from .HgAnnotateDialog import HgAnnotateDialog
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
1712 self.annotate = HgAnnotateDialog(self)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1713 self.annotate.show()
4126
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
1714 self.annotate.raise_()
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1715 self.annotate.start(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1716
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1717 def hgExtendedDiff(self, name):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1718 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
1719 Public method used to view the difference of a file/directory to the
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1720 Mercurial repository.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1721
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1722 If name is a directory and is the project directory, all project files
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
1723 are saved first. If name is a file (or list of files), which is/are
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
1724 being edited and has unsaved modification, they can be saved or the
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
1725 operation may be aborted.
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1726
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1727 This method gives the chance to enter the revisions to be compared.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1728
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1729 @param name file/directory name to be diffed (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1730 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1731 if isinstance(name, list):
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1732 dname, fnames = self.splitPathList(name)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1733 names = name[:]
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1734 else:
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1735 dname, fname = self.splitPath(name)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1736 names = [name]
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1737 for nam in names:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1738 if os.path.isfile(nam):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1739 editor = e5App().getObject("ViewManager").getOpenEditor(nam)
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
1740 if editor and not editor.checkDirty():
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1741 return
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1742 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1743 project = e5App().getObject("Project")
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1744 if nam == project.ppath and not project.saveAllScripts():
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1745 return
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1746
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1747 # find the root of the repo
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1748 repodir = dname
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1749 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1750 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: 1315
diff changeset
1751 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
1752 return
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1753
2405
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2352
diff changeset
1754 from .HgRevisionsSelectionDialog import HgRevisionsSelectionDialog
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1755 dlg = HgRevisionsSelectionDialog(self.hgGetTagsList(repodir),
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
1756 self.hgGetBranchesList(repodir),
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
1757 self.hgGetBookmarksList(repodir))
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1758 if dlg.exec_() == QDialog.Accepted:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1759 revisions = dlg.getRevisions()
4126
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
1760 if self.diff is None:
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
1761 from .HgDiffDialog import HgDiffDialog
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
1762 self.diff = HgDiffDialog(self)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1763 self.diff.show()
4126
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
1764 self.diff.raise_()
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1765 self.diff.start(name, revisions)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1766
2838
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1767 def __hgGetFileForRevision(self, name, rev=""):
2837
a96cb48e86a5 Added the capability to compare files side-by-side to Mercurial.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
1768 """
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
1769 Private method to get a file for a specific revision from the
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
1770 repository.
2837
a96cb48e86a5 Added the capability to compare files side-by-side to Mercurial.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
1771
2838
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1772 @param name file name to get from the repository (string)
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1773 @keyparam rev revision to retrieve (string)
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1774 @return contents of the file (string) and an error message (string)
2837
a96cb48e86a5 Added the capability to compare files side-by-side to Mercurial.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
1775 """
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1776 args = self.initCommand("cat")
2838
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1777 if rev:
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1778 args.append("--rev")
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1779 args.append(rev)
2837
a96cb48e86a5 Added the capability to compare files side-by-side to Mercurial.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
1780 args.append(name)
a96cb48e86a5 Added the capability to compare files side-by-side to Mercurial.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
1781
a96cb48e86a5 Added the capability to compare files side-by-side to Mercurial.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
1782 if self.__client is None:
2838
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1783 output = ""
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1784 error = ""
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1785
2837
a96cb48e86a5 Added the capability to compare files side-by-side to Mercurial.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
1786 # find the root of the repo
a96cb48e86a5 Added the capability to compare files side-by-side to Mercurial.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
1787 repodir = self.splitPath(name)[0]
a96cb48e86a5 Added the capability to compare files side-by-side to Mercurial.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
1788 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
a96cb48e86a5 Added the capability to compare files side-by-side to Mercurial.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
1789 repodir = os.path.dirname(repodir)
a96cb48e86a5 Added the capability to compare files side-by-side to Mercurial.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
1790 if os.path.splitdrive(repodir)[1] == os.sep:
a96cb48e86a5 Added the capability to compare files side-by-side to Mercurial.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
1791 return
a96cb48e86a5 Added the capability to compare files side-by-side to Mercurial.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
1792
a96cb48e86a5 Added the capability to compare files side-by-side to Mercurial.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
1793 process = QProcess()
a96cb48e86a5 Added the capability to compare files side-by-side to Mercurial.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
1794 process.setWorkingDirectory(repodir)
a96cb48e86a5 Added the capability to compare files side-by-side to Mercurial.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
1795 process.start('hg', args)
a96cb48e86a5 Added the capability to compare files side-by-side to Mercurial.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
1796 procStarted = process.waitForStarted(5000)
a96cb48e86a5 Added the capability to compare files side-by-side to Mercurial.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
1797 if procStarted:
a96cb48e86a5 Added the capability to compare files side-by-side to Mercurial.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
1798 finished = process.waitForFinished(30000)
2838
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1799 if finished:
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1800 if process.exitCode() == 0:
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1801 output = str(process.readAllStandardOutput(),
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1802 self.getEncoding(), 'replace')
2838
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1803 else:
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1804 error = str(process.readAllStandardError(),
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1805 self.getEncoding(), 'replace')
2838
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1806 else:
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
1807 error = self.tr(
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
1808 "The hg process did not finish within 30s.")
2838
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1809 else:
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
1810 error = self.tr(
3023
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
1811 'The process {0} could not be started. '
2838
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1812 'Ensure, that it is in the search path.').format('hg')
2837
a96cb48e86a5 Added the capability to compare files side-by-side to Mercurial.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
1813 else:
2838
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1814 output, error = self.__client.runcommand(args)
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1815
3276
1b7002ea389d Return the output of 'hg cat' with universal newline support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3260
diff changeset
1816 # return file contents with 'universal newlines'
1b7002ea389d Return the output of 'hg cat' with universal newline support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3260
diff changeset
1817 return output.replace('\r\n', '\n').replace('\r', '\n'), error
2838
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1818
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1819 def hgSbsDiff(self, name, extended=False, revisions=None):
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1820 """
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
1821 Public method used to view the difference of a file to the Mercurial
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
1822 repository side-by-side.
2837
a96cb48e86a5 Added the capability to compare files side-by-side to Mercurial.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
1823
2838
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1824 @param name file name to be diffed (string)
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1825 @keyparam extended flag indicating the extended variant (boolean)
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1826 @keyparam revisions tuple of two revisions (tuple of strings)
2962
d6c9d1ca2da4 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2844
diff changeset
1827 @exception ValueError raised to indicate an invalid name parameter
2838
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1828 """
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1829 if isinstance(name, list):
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1830 raise ValueError("Wrong parameter type")
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1831
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1832 if extended:
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1833 # find the root of the repo
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1834 repodir = self.splitPath(name)[0]
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1835 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1836 repodir = os.path.dirname(repodir)
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1837 if os.path.splitdrive(repodir)[1] == os.sep:
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1838 return
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1839
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1840 from .HgRevisionsSelectionDialog import HgRevisionsSelectionDialog
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1841 dlg = HgRevisionsSelectionDialog(self.hgGetTagsList(repodir),
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1842 self.hgGetBranchesList(repodir),
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
1843 self.hgGetBookmarksList(repodir))
2838
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1844 if dlg.exec_() == QDialog.Accepted:
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1845 rev1, rev2 = dlg.getRevisions()
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1846 elif revisions:
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1847 rev1, rev2 = revisions[0], revisions[1]
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1848 else:
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1849 rev1, rev2 = "", ""
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1850
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1851 output1, error = self.__hgGetFileForRevision(name, rev=rev1)
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1852 if error:
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
1853 E5MessageBox.critical(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
1854 self.__ui,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
1855 self.tr("Mercurial Side-by-Side Difference"),
2838
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1856 error)
2837
a96cb48e86a5 Added the capability to compare files side-by-side to Mercurial.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
1857 return
2838
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1858 name1 = "{0} (rev. {1})".format(name, rev1 and rev1 or ".")
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1859
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1860 if rev2:
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1861 output2, error = self.__hgGetFileForRevision(name, rev=rev2)
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1862 if error:
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
1863 E5MessageBox.critical(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
1864 self.__ui,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
1865 self.tr("Mercurial Side-by-Side Difference"),
2838
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1866 error)
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1867 return
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1868 name2 = "{0} (rev. {1})".format(name, rev2)
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1869 else:
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1870 try:
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1871 f1 = open(name, "r", encoding="utf-8")
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1872 output2 = f1.read()
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1873 f1.close()
3883
0326270f6f1e A little change to the Mercurial side-by-side diff function indicating the work area version of the file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3873
diff changeset
1874 name2 = "{0} (Work)".format(name)
2838
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1875 except IOError:
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
1876 E5MessageBox.critical(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
1877 self.__ui,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
1878 self.tr("Mercurial Side-by-Side Difference"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
1879 self.tr(
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
1880 """<p>The file <b>{0}</b> could not be read.</p>""")
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
1881 .format(name))
2838
0f1423054184 Continued extending the Mercurial side-by-side diff support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2837
diff changeset
1882 return
2837
a96cb48e86a5 Added the capability to compare files side-by-side to Mercurial.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
1883
2843
d4142608cffc Fixed an issue in the Mercurial side-by-side function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2842
diff changeset
1884 if self.sbsDiff is None:
d4142608cffc Fixed an issue in the Mercurial side-by-side function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2842
diff changeset
1885 from UI.CompareDialog import CompareDialog
d4142608cffc Fixed an issue in the Mercurial side-by-side function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2842
diff changeset
1886 self.sbsDiff = CompareDialog()
d4142608cffc Fixed an issue in the Mercurial side-by-side function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2842
diff changeset
1887 self.sbsDiff.show()
4126
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
1888 self.sbsDiff.raise_()
2843
d4142608cffc Fixed an issue in the Mercurial side-by-side function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2842
diff changeset
1889 self.sbsDiff.compare(output1, output2, name1, name2)
2837
a96cb48e86a5 Added the capability to compare files side-by-side to Mercurial.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
1890
3349
2a034a7f1f54 Made the status LED (right lower corner) clickable (depending on overall VCS status it will show the log browser or the status dialog).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3328
diff changeset
1891 def vcsLogBrowser(self, name, isFile=False):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1892 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
1893 Public method used to browse the log of a file/directory from the
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1894 Mercurial repository.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1895
3349
2a034a7f1f54 Made the status LED (right lower corner) clickable (depending on overall VCS status it will show the log browser or the status dialog).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3328
diff changeset
1896 @param name file/directory name to show the log of (string)
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
1897 @keyparam isFile flag indicating log for a file is to be shown
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
1898 (boolean)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1899 """
3283
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3277
diff changeset
1900 if self.logBrowser is None:
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3277
diff changeset
1901 from .HgLogBrowserDialog import HgLogBrowserDialog
2079b76a738b Changed the Mercurial Log Browser dialog to maintain its position after being closed.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3277
diff changeset
1902 self.logBrowser = HgLogBrowserDialog(self)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1903 self.logBrowser.show()
4126
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
1904 self.logBrowser.raise_()
3349
2a034a7f1f54 Made the status LED (right lower corner) clickable (depending on overall VCS status it will show the log browser or the status dialog).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3328
diff changeset
1905 self.logBrowser.start(name, isFile=isFile)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1906
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1907 def hgIncoming(self, name):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1908 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
1909 Public method used to view the log of incoming changes from the
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1910 Mercurial repository.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1911
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1912 @param name file/directory name to show the log of (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1913 """
5452
9f89364d9ffd Removed the VCS log dialogs in favour of the log browser dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1914 if self.logBrowserIncoming is None:
9f89364d9ffd Removed the VCS log dialogs in favour of the log browser dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1915 from .HgLogBrowserDialog import HgLogBrowserDialog
9f89364d9ffd Removed the VCS log dialogs in favour of the log browser dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1916 self.logBrowserIncoming = HgLogBrowserDialog(
9f89364d9ffd Removed the VCS log dialogs in favour of the log browser dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1917 self, mode="incoming")
9f89364d9ffd Removed the VCS log dialogs in favour of the log browser dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1918 self.logBrowserIncoming.show()
9f89364d9ffd Removed the VCS log dialogs in favour of the log browser dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1919 self.logBrowserIncoming.raise_()
9f89364d9ffd Removed the VCS log dialogs in favour of the log browser dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1920 self.logBrowserIncoming.start(name)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1921
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1922 def hgOutgoing(self, name):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1923 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
1924 Public method used to view the log of outgoing changes from the
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1925 Mercurial repository.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1926
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1927 @param name file/directory name to show the log of (string)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1928 """
5452
9f89364d9ffd Removed the VCS log dialogs in favour of the log browser dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1929 if self.logBrowserOutgoing is None:
9f89364d9ffd Removed the VCS log dialogs in favour of the log browser dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1930 from .HgLogBrowserDialog import HgLogBrowserDialog
9f89364d9ffd Removed the VCS log dialogs in favour of the log browser dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1931 self.logBrowserOutgoing = HgLogBrowserDialog(
9f89364d9ffd Removed the VCS log dialogs in favour of the log browser dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1932 self, mode="outgoing")
9f89364d9ffd Removed the VCS log dialogs in favour of the log browser dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1933 self.logBrowserOutgoing.show()
9f89364d9ffd Removed the VCS log dialogs in favour of the log browser dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1934 self.logBrowserOutgoing.raise_()
9f89364d9ffd Removed the VCS log dialogs in favour of the log browser dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
1935 self.logBrowserOutgoing.start(name)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1936
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1937 def hgPull(self, name):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1938 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1939 Public method used to pull changes from a remote Mercurial repository.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1940
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1941 @param name directory name of the project to be pulled to (string)
660
7a1d92437921 Added code to check, if a pull --update modified the project structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
1942 @return flag indicating, that the update contained an add
7a1d92437921 Added code to check, if a pull --update modified the project structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
1943 or delete (boolean)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1944 """
1307
9f7a056dbcc6 Modified pull such, that it will try to apply an existing changegroups file first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1283
diff changeset
1945 if self.getPlugin().getPreferences("PreferUnbundle") and \
9f7a056dbcc6 Modified pull such, that it will try to apply an existing changegroups file first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1283
diff changeset
1946 self.bundleFile and \
9f7a056dbcc6 Modified pull such, that it will try to apply an existing changegroups file first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1283
diff changeset
1947 os.path.exists(self.bundleFile):
9f7a056dbcc6 Modified pull such, that it will try to apply an existing changegroups file first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1283
diff changeset
1948 command = "unbundle"
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
1949 title = self.tr('Apply changegroups')
1307
9f7a056dbcc6 Modified pull such, that it will try to apply an existing changegroups file first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1283
diff changeset
1950 else:
9f7a056dbcc6 Modified pull such, that it will try to apply an existing changegroups file first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1283
diff changeset
1951 command = "pull"
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
1952 title = self.tr('Pulling from a remote Mercurial repository')
1307
9f7a056dbcc6 Modified pull such, that it will try to apply an existing changegroups file first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1283
diff changeset
1953
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1954 args = self.initCommand(command)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1955 args.append('-v')
219
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
1956 if self.getPlugin().getPreferences("PullUpdate"):
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
1957 args.append('--update')
1307
9f7a056dbcc6 Modified pull such, that it will try to apply an existing changegroups file first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1283
diff changeset
1958 if command == "unbundle":
9f7a056dbcc6 Modified pull such, that it will try to apply an existing changegroups file first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1283
diff changeset
1959 args.append(self.bundleFile)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1960
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1961 # find the root of the repo
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1962 repodir = self.splitPath(name)[0]
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1963 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1964 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: 1315
diff changeset
1965 if os.path.splitdrive(repodir)[1] == os.sep:
1311
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
1966 return False
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1967
1307
9f7a056dbcc6 Modified pull such, that it will try to apply an existing changegroups file first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1283
diff changeset
1968 dia = HgDialog(title, self)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1969 res = dia.startProcess(args, repodir)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1970 if res:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1971 dia.exec_()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1972 res = dia.hasAddOrDelete()
3242
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3231
diff changeset
1973 if self.bundleFile and \
a7e006073658 Fixed an issue in Mercurial log dialogs showing a wrong diff for incoming changesets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3231
diff changeset
1974 os.path.exists(self.bundleFile):
1307
9f7a056dbcc6 Modified pull such, that it will try to apply an existing changegroups file first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1283
diff changeset
1975 os.remove(self.bundleFile)
9f7a056dbcc6 Modified pull such, that it will try to apply an existing changegroups file first.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1283
diff changeset
1976 self.bundleFile = None
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1977 self.checkVCSStatus()
660
7a1d92437921 Added code to check, if a pull --update modified the project structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
1978 return res
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1979
4409
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4126
diff changeset
1980 def hgPush(self, name, force=False, newBranch=False, rev=None):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1981 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1982 Public method used to push changes to a remote Mercurial repository.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1983
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1984 @param name directory name of the project to be pushed from (string)
276
4a7e25ee406c Added an action to perform a 'hg push -f' to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 248
diff changeset
1985 @keyparam force flag indicating a forced push (boolean)
963
b672d2191a04 Added an action to push a new named branch to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
1986 @keyparam newBranch flag indicating to push a new branch (boolean)
4409
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4126
diff changeset
1987 @keyparam rev revision to be pushed (including all ancestors) (string)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1988 """
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
1989 args = self.initCommand("push")
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1990 args.append('-v')
276
4a7e25ee406c Added an action to perform a 'hg push -f' to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 248
diff changeset
1991 if force:
4a7e25ee406c Added an action to perform a 'hg push -f' to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 248
diff changeset
1992 args.append('-f')
963
b672d2191a04 Added an action to push a new named branch to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
1993 if newBranch:
b672d2191a04 Added an action to push a new named branch to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
1994 args.append('--new-branch')
4409
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4126
diff changeset
1995 if rev:
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4126
diff changeset
1996 args.append('--rev')
ff1cb0107d40 Enhanced the log browser functionality by pull and push actions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4126
diff changeset
1997 args.append(rev)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1998
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1999 # find the root of the repo
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2000 repodir = self.splitPath(name)[0]
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2001 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2002 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: 1315
diff changeset
2003 if os.path.splitdrive(repodir)[1] == os.sep:
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2004 return
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2005
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
2006 dia = HgDialog(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2007 self.tr('Pushing to a remote Mercurial repository'), self)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2008 res = dia.startProcess(args, repodir)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2009 if res:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2010 dia.exec_()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2011 self.checkVCSStatus()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2012
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
2013 def hgInfo(self, ppath, mode="heads"):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2014 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2015 Public method to show information about the heads of the repository.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2016
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2017 @param ppath local path to get the repository infos (string)
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
2018 @keyparam mode mode of the operation (string, one of heads, parents,
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
2019 tip)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2020 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2021 if mode not in ("heads", "parents", "tip"):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2022 mode = "heads"
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2023
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2024 info = []
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2025
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
2026 args = self.initCommand(mode)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2027 args.append('--template')
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2028 args.append('{rev}:{node|short}@@@{tags}@@@{author|xmlescape}@@@'
1019
d8a9697f78d1 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1018
diff changeset
2029 '{date|isodate}@@@{branches}@@@{parents}@@@{bookmarks}\n')
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2030
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2031 output = ""
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2032 if self.__client is None:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2033 # find the root of the repo
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2034 repodir = self.splitPath(ppath)[0]
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2035 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2036 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: 1315
diff changeset
2037 if os.path.splitdrive(repodir)[1] == os.sep:
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2038 return
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2039
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2040 process = QProcess()
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2041 process.setWorkingDirectory(repodir)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2042 process.start('hg', args)
2771
281c9b30dd91 Changed all QProcess.waitForStarted() calls to use a 5s timeout (except the debugger interfaces, which have a 10s timeout).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2718
diff changeset
2043 procStarted = process.waitForStarted(5000)
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2044 if procStarted:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2045 finished = process.waitForFinished(30000)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2046 if finished and process.exitCode() == 0:
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
2047 output = str(process.readAllStandardOutput(),
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
2048 self.getEncoding(), 'replace')
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2049 else:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2050 output, error = self.__client.runcommand(args)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2051
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2052 if output:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2053 index = 0
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2054 for line in output.splitlines():
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2055 index += 1
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2056 changeset, tags, author, date, branches, parents, bookmarks = \
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2057 line.split("@@@")
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2058 cdate, ctime = date.split()[:2]
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2059 info.append("""<p><table>""")
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2060 if mode == "heads":
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
2061 info.append(QCoreApplication.translate(
3023
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
2062 "mercurial",
4512
23e8b848efb0 Fixed some incorrect string format strings using the new checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4487
diff changeset
2063 """<tr><td><b>Head #{0}</b></td><td></td></tr>\n""")
23e8b848efb0 Fixed some incorrect string format strings using the new checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4487
diff changeset
2064 .format(index))
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2065 elif mode == "parents":
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
2066 info.append(QCoreApplication.translate(
3023
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
2067 "mercurial",
4512
23e8b848efb0 Fixed some incorrect string format strings using the new checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4487
diff changeset
2068 """<tr><td><b>Parent #{0}</b></td><td></td></tr>\n""")
23e8b848efb0 Fixed some incorrect string format strings using the new checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4487
diff changeset
2069 .format(index))
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2070 elif mode == "tip":
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
2071 info.append(QCoreApplication.translate(
3023
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
2072 "mercurial",
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2073 """<tr><td><b>Tip</b></td><td></td></tr>\n"""))
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
2074 info.append(QCoreApplication.translate(
3023
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
2075 "mercurial",
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3023
diff changeset
2076 """<tr><td><b>Changeset</b></td><td>{0}</td></tr>""")
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2077 .format(changeset))
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2078 if tags:
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
2079 info.append(QCoreApplication.translate(
3023
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
2080 "mercurial",
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3023
diff changeset
2081 """<tr><td><b>Tags</b></td><td>{0}</td></tr>""")
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2082 .format('<br/>'.join(tags.split())))
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2083 if bookmarks:
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
2084 info.append(QCoreApplication.translate(
3023
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
2085 "mercurial",
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3023
diff changeset
2086 """<tr><td><b>Bookmarks</b></td><td>{0}</td></tr>""")
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2087 .format('<br/>'.join(bookmarks.split())))
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2088 if branches:
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
2089 info.append(QCoreApplication.translate(
3023
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
2090 "mercurial",
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3023
diff changeset
2091 """<tr><td><b>Branches</b></td><td>{0}</td></tr>""")
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2092 .format('<br/>'.join(branches.split())))
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2093 if parents:
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
2094 info.append(QCoreApplication.translate(
3023
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
2095 "mercurial",
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3023
diff changeset
2096 """<tr><td><b>Parents</b></td><td>{0}</td></tr>""")
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2097 .format('<br/>'.join(parents.split())))
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
2098 info.append(QCoreApplication.translate(
3023
34ce20603bf7 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
2099 "mercurial",
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2100 """<tr><td><b>Last author</b></td><td>{0}</td></tr>\n"""
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2101 """<tr><td><b>Committed date</b></td><td>{1}</td></tr>\n"""
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2102 """<tr><td><b>Committed time</b></td><td>{2}</td></tr>\n"""
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3023
diff changeset
2103 """</table></p>""")
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2104 .format(author, cdate, ctime))
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2105
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2106 dlg = VcsRepositoryInfoDialog(None, "\n".join(info))
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
2107 dlg.exec_()
3578
e55d32585d08 Added a TODO marker in Mercurial.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3562
diff changeset
2108
3586
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
2109 def hgConflicts(self, name):
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
2110 """
3853
f0408b5c84e9 Corrected some typos.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3675
diff changeset
2111 Public method used to show a list of files containing conflicts.
3586
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
2112
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
2113 @param name file/directory name to be resolved (string)
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
2114 """
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
2115 if self.conflictsDlg is None:
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
2116 from .HgConflictsListDialog import HgConflictsListDialog
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
2117 self.conflictsDlg = HgConflictsListDialog(self)
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
2118 self.conflictsDlg.show()
4126
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
2119 self.conflictsDlg.raise_()
3586
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
2120 self.conflictsDlg.start(name)
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
2121
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
2122 def hgResolved(self, name, unresolve=False):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2123 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2124 Public method used to resolve conflicts of a file/directory.
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2125
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2126 @param name file/directory name to be resolved (string)
3586
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
2127 @param unresolve flag indicating to mark the file/directory as
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
2128 unresolved (boolean)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2129 """
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
2130 args = self.initCommand("resolve")
3586
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
2131 if unresolve:
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
2132 args.append("--unmark")
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
2133 else:
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
2134 args.append("--mark")
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2135
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2136 if isinstance(name, list):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2137 dname, fnames = self.splitPathList(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2138 self.addArguments(args, name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2139 else:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2140 dname, fname = self.splitPath(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2141 args.append(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2142
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2143 # find the root of the repo
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2144 repodir = dname
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2145 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2146 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: 1315
diff changeset
2147 if os.path.splitdrive(repodir)[1] == os.sep:
2962
d6c9d1ca2da4 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2844
diff changeset
2148 return
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2149
3586
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
2150 if unresolve:
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
2151 title = self.tr("Marking as 'unresolved'")
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
2152 else:
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
2153 title = self.tr("Marking as 'resolved'")
6e3a6c5b58bf Added support for various Mercurial 'resolve' subcommands.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3578
diff changeset
2154 dia = HgDialog(title, self)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2155 res = dia.startProcess(args, repodir)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2156 if res:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2157 dia.exec_()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2158 self.checkVCSStatus()
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2159
3479
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2160 def hgCancelMerge(self, name):
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2161 """
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2162 Public method to cancel an uncommitted merge.
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2163
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2164 @param name file/directory name (string)
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2165 @return flag indicating, that the cancellation contained an add
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2166 or delete (boolean)
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2167 """
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2168 dname, fname = self.splitPath(name)
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2169
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2170 # find the root of the repo
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2171 repodir = dname
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2172 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2173 repodir = os.path.dirname(repodir)
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2174 if os.path.splitdrive(repodir)[1] == os.sep:
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2175 return
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2176
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2177 args = self.initCommand("update")
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2178 args.append("--clean")
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2179
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2180 dia = HgDialog(
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2181 self.tr('Cancelling uncommitted merge'),
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2182 self)
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2183 res = dia.startProcess(args, repodir, False)
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2184 if res:
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2185 dia.exec_()
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2186 res = dia.hasAddOrDelete()
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2187 self.checkVCSStatus()
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2188 return res
5ff8124c73aa Added a Mercurial entry to cancel an uncommitted merge.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3475
diff changeset
2189
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2190 def hgBranch(self, name):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2191 """
202
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2192 Public method used to create a branch in the Mercurial repository.
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2193
189
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2194 @param name file/directory name to be branched (string)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2195 """
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2196 dname, fname = self.splitPath(name)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2197
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2198 # find the root of the repo
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
2199 repodir = dname
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2200 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2201 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: 1315
diff changeset
2202 if os.path.splitdrive(repodir)[1] == os.sep:
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2203 return
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2204
3353
ddc966a494b0 Added capability to commit a new branch directly without the need to select the commit menu entry.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3349
diff changeset
2205 from .HgBranchInputDialog import HgBranchInputDialog
ddc966a494b0 Added capability to commit a new branch directly without the need to select the commit menu entry.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3349
diff changeset
2206 dlg = HgBranchInputDialog(self.hgGetBranchesList(repodir))
ddc966a494b0 Added capability to commit a new branch directly without the need to select the commit menu entry.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3349
diff changeset
2207 if dlg.exec_() == QDialog.Accepted:
ddc966a494b0 Added capability to commit a new branch directly without the need to select the commit menu entry.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3349
diff changeset
2208 name, commit = dlg.getData()
ddc966a494b0 Added capability to commit a new branch directly without the need to select the commit menu entry.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3349
diff changeset
2209 name = name.strip().replace(" ", "_")
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
2210 args = self.initCommand("branch")
3353
ddc966a494b0 Added capability to commit a new branch directly without the need to select the commit menu entry.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3349
diff changeset
2211 args.append(name)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2212
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
2213 dia = HgDialog(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2214 self.tr('Creating branch in the Mercurial repository'),
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
2215 self)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2216 res = dia.startProcess(args, repodir)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2217 if res:
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2218 dia.exec_()
3353
ddc966a494b0 Added capability to commit a new branch directly without the need to select the commit menu entry.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3349
diff changeset
2219 if commit:
ddc966a494b0 Added capability to commit a new branch directly without the need to select the commit menu entry.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3349
diff changeset
2220 self.vcsCommit(
ddc966a494b0 Added capability to commit a new branch directly without the need to select the commit menu entry.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3349
diff changeset
2221 repodir,
ddc966a494b0 Added capability to commit a new branch directly without the need to select the commit menu entry.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3349
diff changeset
2222 self.tr("Created new branch <{0}>.").format(
ddc966a494b0 Added capability to commit a new branch directly without the need to select the commit menu entry.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3349
diff changeset
2223 name))
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2224
202
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2225 def hgShowBranch(self, name):
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2226 """
3853
f0408b5c84e9 Corrected some typos.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3675
diff changeset
2227 Public method used to show the current branch of the working directory.
202
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2228
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2229 @param name file/directory name (string)
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2230 """
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2231 dname, fname = self.splitPath(name)
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2232
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2233 # find the root of the repo
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
2234 repodir = dname
202
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2235 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2236 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: 1315
diff changeset
2237 if os.path.splitdrive(repodir)[1] == os.sep:
202
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2238 return
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2239
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
2240 args = self.initCommand("branch")
202
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2241
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2242 dia = HgDialog(self.tr('Showing current branch'), self)
202
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2243 res = dia.startProcess(args, repodir, False)
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2244 if res:
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2245 dia.exec_()
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2246
5319
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2247 def hgGetCurrentBranch(self, repodir):
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2248 """
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2249 Public method to get the current branch of the working directory.
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2250
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2251 @param repodir directory name of the repository
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2252 @type str
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2253 @return name of the current branch
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2254 @rtype str
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2255 """
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2256 args = self.initCommand("branch")
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2257
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2258 output = ""
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2259 if self.__client is None:
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2260 process = QProcess()
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2261 process.setWorkingDirectory(repodir)
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2262 process.start('hg', args)
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2263 procStarted = process.waitForStarted(5000)
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2264 if procStarted:
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2265 finished = process.waitForFinished(30000)
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2266 if finished and process.exitCode() == 0:
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2267 output = str(process.readAllStandardOutput(),
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2268 self.getEncoding(), 'replace')
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2269 else:
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2270 output, error = self.__client.runcommand(args)
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2271
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2272 return output.strip()
a512d3951a13 Added context menu actions to the Mercurial tags/branches list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5292
diff changeset
2273
1064
10bdbb173c0f Added an entry to the Mercurial menu to edit the user configuration file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
2274 def hgEditUserConfig(self):
10bdbb173c0f Added an entry to the Mercurial menu to edit the user configuration file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
2275 """
10bdbb173c0f Added an entry to the Mercurial menu to edit the user configuration file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
2276 Public method used to edit the user configuration file.
10bdbb173c0f Added an entry to the Mercurial menu to edit the user configuration file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
2277 """
5262
235d6a030128 Continued refactoring the Mercurial user config management code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5256
diff changeset
2278 from .HgUserConfigDialog import HgUserConfigDialog
235d6a030128 Continued refactoring the Mercurial user config management code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5256
diff changeset
2279 dlg = HgUserConfigDialog(version=self.version)
235d6a030128 Continued refactoring the Mercurial user config management code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5256
diff changeset
2280 dlg.exec_()
1064
10bdbb173c0f Added an entry to the Mercurial menu to edit the user configuration file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
2281
3311
b4775920f5b8 Continued implementing Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3310
diff changeset
2282 def hgEditConfig(self, name, withLargefiles=True, largefilesData=None):
189
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2283 """
1064
10bdbb173c0f Added an entry to the Mercurial menu to edit the user configuration file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
2284 Public method used to edit the repository configuration file.
189
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2285
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2286 @param name file/directory name (string)
3311
b4775920f5b8 Continued implementing Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3310
diff changeset
2287 @param withLargefiles flag indicating to configure the largefiles
b4775920f5b8 Continued implementing Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3310
diff changeset
2288 section (boolean)
b4775920f5b8 Continued implementing Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3310
diff changeset
2289 @param largefilesData dictionary with data for the largefiles
b4775920f5b8 Continued implementing Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3310
diff changeset
2290 section of the data dialog (dict)
189
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2291 """
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2292 dname, fname = self.splitPath(name)
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2293
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2294 # find the root of the repo
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
2295 repodir = dname
189
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2296 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2297 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: 1315
diff changeset
2298 if os.path.splitdrive(repodir)[1] == os.sep:
189
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2299 return
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2300
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2301 cfgFile = os.path.join(repodir, self.adminDir, "hgrc")
347
0b1a7a38f8e9 Fixed an issue with the Mercurial plugin (missing .hg/hgrc file).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 305
diff changeset
2302 if not os.path.exists(cfgFile):
3231
a7c9914d1c41 Added dialogs to enter the contents for initial .hgrc/mercurial.ini and .hg/hgrc files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3227
diff changeset
2303 # open dialog to enter the initial data
3359
6b6c224d67d6 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3353
diff changeset
2304 withLargefiles = (self.isExtensionActive("largefiles") and
3311
b4775920f5b8 Continued implementing Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3310
diff changeset
2305 withLargefiles)
3231
a7c9914d1c41 Added dialogs to enter the contents for initial .hgrc/mercurial.ini and .hg/hgrc files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3227
diff changeset
2306 from .HgRepoConfigDataDialog import HgRepoConfigDataDialog
3311
b4775920f5b8 Continued implementing Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3310
diff changeset
2307 dlg = HgRepoConfigDataDialog(withLargefiles=withLargefiles,
b4775920f5b8 Continued implementing Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3310
diff changeset
2308 largefilesData=largefilesData)
3231
a7c9914d1c41 Added dialogs to enter the contents for initial .hgrc/mercurial.ini and .hg/hgrc files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3227
diff changeset
2309 if dlg.exec_() == QDialog.Accepted:
a7c9914d1c41 Added dialogs to enter the contents for initial .hgrc/mercurial.ini and .hg/hgrc files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3227
diff changeset
2310 createContents = True
a7c9914d1c41 Added dialogs to enter the contents for initial .hgrc/mercurial.ini and .hg/hgrc files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3227
diff changeset
2311 defaultUrl, defaultPushUrl = dlg.getData()
3311
b4775920f5b8 Continued implementing Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3310
diff changeset
2312 if withLargefiles:
b4775920f5b8 Continued implementing Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3310
diff changeset
2313 lfMinSize, lfPattern = dlg.getLargefilesData()
3231
a7c9914d1c41 Added dialogs to enter the contents for initial .hgrc/mercurial.ini and .hg/hgrc files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3227
diff changeset
2314 else:
a7c9914d1c41 Added dialogs to enter the contents for initial .hgrc/mercurial.ini and .hg/hgrc files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3227
diff changeset
2315 createContents = False
347
0b1a7a38f8e9 Fixed an issue with the Mercurial plugin (missing .hg/hgrc file).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 305
diff changeset
2316 try:
0b1a7a38f8e9 Fixed an issue with the Mercurial plugin (missing .hg/hgrc file).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 305
diff changeset
2317 cfg = open(cfgFile, "w")
3231
a7c9914d1c41 Added dialogs to enter the contents for initial .hgrc/mercurial.ini and .hg/hgrc files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3227
diff changeset
2318 if createContents:
a7c9914d1c41 Added dialogs to enter the contents for initial .hgrc/mercurial.ini and .hg/hgrc files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3227
diff changeset
2319 # write the data entered
a7c9914d1c41 Added dialogs to enter the contents for initial .hgrc/mercurial.ini and .hg/hgrc files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3227
diff changeset
2320 cfg.write("[paths]\n")
a7c9914d1c41 Added dialogs to enter the contents for initial .hgrc/mercurial.ini and .hg/hgrc files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3227
diff changeset
2321 if defaultUrl:
a7c9914d1c41 Added dialogs to enter the contents for initial .hgrc/mercurial.ini and .hg/hgrc files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3227
diff changeset
2322 cfg.write("default = {0}\n".format(defaultUrl))
a7c9914d1c41 Added dialogs to enter the contents for initial .hgrc/mercurial.ini and .hg/hgrc files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3227
diff changeset
2323 if defaultPushUrl:
a7c9914d1c41 Added dialogs to enter the contents for initial .hgrc/mercurial.ini and .hg/hgrc files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3227
diff changeset
2324 cfg.write("default-push = {0}\n".format(
a7c9914d1c41 Added dialogs to enter the contents for initial .hgrc/mercurial.ini and .hg/hgrc files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3227
diff changeset
2325 defaultPushUrl))
3311
b4775920f5b8 Continued implementing Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3310
diff changeset
2326 if withLargefiles and \
b4775920f5b8 Continued implementing Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3310
diff changeset
2327 (lfMinSize, lfPattern) != (None, None):
b4775920f5b8 Continued implementing Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3310
diff changeset
2328 cfg.write("\n[largefiles]\n")
b4775920f5b8 Continued implementing Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3310
diff changeset
2329 if lfMinSize is not None:
b4775920f5b8 Continued implementing Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3310
diff changeset
2330 cfg.write("minsize = {0}\n".format(lfMinSize))
b4775920f5b8 Continued implementing Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3310
diff changeset
2331 if lfPattern is not None:
b4775920f5b8 Continued implementing Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3310
diff changeset
2332 cfg.write("patterns =\n")
b4775920f5b8 Continued implementing Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3310
diff changeset
2333 cfg.write(" {0}\n".format(
b4775920f5b8 Continued implementing Mercurial lfconvert functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3310
diff changeset
2334 "\n ".join(lfPattern)))
347
0b1a7a38f8e9 Fixed an issue with the Mercurial plugin (missing .hg/hgrc file).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 305
diff changeset
2335 cfg.close()
1211
a91a47f2f5e6 Added code to start monitoring the Mercurial hgrc file when it was created by starting the hgrc file editor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1210
diff changeset
2336 self.__monitorRepoIniFile(repodir)
3416
efce6439595a Fixed an issue with Mercurial not realizing some changes of the configuration.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3407
diff changeset
2337 self.__iniFileChanged(cfgFile)
347
0b1a7a38f8e9 Fixed an issue with the Mercurial plugin (missing .hg/hgrc file).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 305
diff changeset
2338 except IOError:
0b1a7a38f8e9 Fixed an issue with the Mercurial plugin (missing .hg/hgrc file).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 305
diff changeset
2339 pass
1064
10bdbb173c0f Added an entry to the Mercurial menu to edit the user configuration file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
2340 self.repoEditor = MiniEditor(cfgFile, "Properties")
10bdbb173c0f Added an entry to the Mercurial menu to edit the user configuration file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
2341 self.repoEditor.show()
189
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2342
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2343 def hgVerify(self, name):
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2344 """
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2345 Public method to verify the integrity of the repository.
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2346
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2347 @param name file/directory name (string)
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2348 """
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2349 dname, fname = self.splitPath(name)
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2350
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2351 # find the root of the repo
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
2352 repodir = dname
189
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2353 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2354 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: 1315
diff changeset
2355 if os.path.splitdrive(repodir)[1] == os.sep:
189
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2356 return
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2357
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
2358 args = self.initCommand("verify")
189
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2359
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
2360 dia = HgDialog(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2361 self.tr('Verifying the integrity of the Mercurial repository'),
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
2362 self)
189
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2363 res = dia.startProcess(args, repodir)
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2364 if res:
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2365 dia.exec_()
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2366
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2367 def hgShowConfig(self, name):
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2368 """
1064
10bdbb173c0f Added an entry to the Mercurial menu to edit the user configuration file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
2369 Public method to show the combined configuration.
189
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2370
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2371 @param name file/directory name (string)
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2372 """
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2373 dname, fname = self.splitPath(name)
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2374
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2375 # find the root of the repo
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
2376 repodir = dname
189
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2377 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2378 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: 1315
diff changeset
2379 if os.path.splitdrive(repodir)[1] == os.sep:
189
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2380 return
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2381
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
2382 args = self.initCommand("showconfig")
189
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2383 args.append("--untrusted")
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2384
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
2385 dia = HgDialog(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2386 self.tr('Showing the combined configuration settings'),
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
2387 self)
189
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2388 res = dia.startProcess(args, repodir, False)
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2389 if res:
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2390 dia.exec_()
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2391
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2392 def hgShowPaths(self, name):
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2393 """
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2394 Public method to show the path aliases for remote repositories.
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2395
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2396 @param name file/directory name (string)
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2397 """
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2398 dname, fname = self.splitPath(name)
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2399
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2400 # find the root of the repo
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
2401 repodir = dname
189
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2402 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2403 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: 1315
diff changeset
2404 if os.path.splitdrive(repodir)[1] == os.sep:
189
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2405 return
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2406
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
2407 args = self.initCommand("paths")
189
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2408
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
2409 dia = HgDialog(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2410 self.tr('Showing aliases for remote repositories'),
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
2411 self)
189
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2412 res = dia.startProcess(args, repodir, False)
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2413 if res:
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2414 dia.exec_()
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2415
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2416 def hgRecover(self, name):
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2417 """
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2418 Public method to recover an interrupted transaction.
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2419
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2420 @param name file/directory name (string)
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2421 """
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2422 dname, fname = self.splitPath(name)
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2423
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2424 # find the root of the repo
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
2425 repodir = dname
189
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2426 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2427 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: 1315
diff changeset
2428 if os.path.splitdrive(repodir)[1] == os.sep:
189
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2429 return
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2430
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
2431 args = self.initCommand("recover")
189
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2432
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
2433 dia = HgDialog(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2434 self.tr('Recovering from interrupted transaction'),
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
2435 self)
189
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2436 res = dia.startProcess(args, repodir, False)
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2437 if res:
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2438 dia.exec_()
17bb2db7a347 Added administration actions to the Mercurial plugin.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 184
diff changeset
2439
216
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2440 def hgIdentify(self, name):
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2441 """
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2442 Public method to identify the current working directory.
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2443
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2444 @param name file/directory name (string)
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2445 """
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2446 dname, fname = self.splitPath(name)
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2447
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2448 # find the root of the repo
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
2449 repodir = dname
216
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2450 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2451 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: 1315
diff changeset
2452 if os.path.splitdrive(repodir)[1] == os.sep:
216
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2453 return
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2454
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
2455 args = self.initCommand("identify")
216
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2456
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2457 dia = HgDialog(self.tr('Identifying project directory'), self)
216
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2458 res = dia.startProcess(args, repodir, False)
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2459 if res:
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2460 dia.exec_()
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2461
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
2462 def hgCreateIgnoreFile(self, name, autoAdd=False):
191
dccb19a7c52e Added an action to create a .hgignore file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
2463 """
dccb19a7c52e Added an action to create a .hgignore file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
2464 Public method to create the ignore file.
dccb19a7c52e Added an action to create a .hgignore file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
2465
dccb19a7c52e Added an action to create a .hgignore file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
2466 @param name directory name to create the ignore file in (string)
dccb19a7c52e Added an action to create a .hgignore file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
2467 @param autoAdd flag indicating to add it automatically (boolean)
dccb19a7c52e Added an action to create a .hgignore file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
2468 @return flag indicating success
dccb19a7c52e Added an action to create a .hgignore file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
2469 """
216
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2470 status = False
191
dccb19a7c52e Added an action to create a .hgignore file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
2471 ignorePatterns = [
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
2472 "glob:.eric6project",
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
2473 "glob:_eric6project",
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
2474 "glob:.eric5project",
1237
a6b7e93f649c Extended the list of excludes for the creation of .hgignore file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1212
diff changeset
2475 "glob:_eric5project",
1880
dbd4d7698310 Added code to ensure, that some eric specific files and directories get ignored
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1855
diff changeset
2476 "glob:.eric4project",
dbd4d7698310 Added code to ensure, that some eric specific files and directories get ignored
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1855
diff changeset
2477 "glob:_eric4project",
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
2478 "glob:.ropeproject",
1237
a6b7e93f649c Extended the list of excludes for the creation of .hgignore file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1212
diff changeset
2479 "glob:_ropeproject",
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
2480 "glob:.directory",
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
2481 "glob:**.pyc",
1237
a6b7e93f649c Extended the list of excludes for the creation of .hgignore file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1212
diff changeset
2482 "glob:**.pyo",
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
2483 "glob:**.orig",
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
2484 "glob:**.bak",
1237
a6b7e93f649c Extended the list of excludes for the creation of .hgignore file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1212
diff changeset
2485 "glob:**.rej",
a6b7e93f649c Extended the list of excludes for the creation of .hgignore file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1212
diff changeset
2486 "glob:**~",
1880
dbd4d7698310 Added code to ensure, that some eric specific files and directories get ignored
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1855
diff changeset
2487 "glob:cur",
dbd4d7698310 Added code to ensure, that some eric specific files and directories get ignored
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1855
diff changeset
2488 "glob:tmp",
1237
a6b7e93f649c Extended the list of excludes for the creation of .hgignore file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1212
diff changeset
2489 "glob:__pycache__",
1880
dbd4d7698310 Added code to ensure, that some eric specific files and directories get ignored
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1855
diff changeset
2490 "glob:**.DS_Store",
191
dccb19a7c52e Added an action to create a .hgignore file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
2491 ]
dccb19a7c52e Added an action to create a .hgignore file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
2492
1880
dbd4d7698310 Added code to ensure, that some eric specific files and directories get ignored
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1855
diff changeset
2493 ignoreName = os.path.join(name, Hg.IgnoreFileName)
216
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2494 if os.path.exists(ignoreName):
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
2495 res = E5MessageBox.yesNo(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
2496 self.__ui,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2497 self.tr("Create .hgignore file"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2498 self.tr("""<p>The file <b>{0}</b> exists already."""
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2499 """ Overwrite it?</p>""").format(ignoreName),
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
2500 icon=E5MessageBox.Warning)
216
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2501 else:
541
00e1a5d060c5 Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 539
diff changeset
2502 res = True
00e1a5d060c5 Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 539
diff changeset
2503 if res:
216
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2504 try:
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2505 # create a .hgignore file
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2506 ignore = open(ignoreName, "w")
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2507 ignore.write("\n".join(ignorePatterns))
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2508 ignore.write("\n")
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2509 ignore.close()
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2510 status = True
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2511 except IOError:
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2512 status = False
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2513
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2514 if status and autoAdd:
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
2515 self.vcsAdd(ignoreName, noDialog=True)
216
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2516 project = e5App().getObject("Project")
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2517 project.appendFile(ignoreName)
191
dccb19a7c52e Added an action to create a .hgignore file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
2518
dccb19a7c52e Added an action to create a .hgignore file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
2519 return status
dccb19a7c52e Added an action to create a .hgignore file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 189
diff changeset
2520
5501
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2521 def hgBundle(self, name, bundleData=None):
199
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2522 """
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2523 Public method to create a changegroup file.
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2524
5501
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2525 @param name file/directory name
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2526 @type str
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2527 @param bundleData dictionary containing the bundle creation information
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2528 @type dict
199
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2529 """
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2530 dname, fname = self.splitPath(name)
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2531
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2532 # find the root of the repo
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
2533 repodir = dname
199
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2534 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2535 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: 1315
diff changeset
2536 if os.path.splitdrive(repodir)[1] == os.sep:
199
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2537 return
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2538
5501
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2539 if bundleData is None:
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2540 from .HgBundleDialog import HgBundleDialog
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2541 dlg = HgBundleDialog(self.hgGetTagsList(repodir),
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2542 self.hgGetBranchesList(repodir),
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2543 self.hgGetBookmarksList(repodir))
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2544 if dlg.exec_() != QDialog.Accepted:
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2545 return
199
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2546
5501
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2547 revs, baseRevs, compression, all = dlg.getParameters()
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2548 else:
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2549 revs = bundleData["revs"]
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2550 baseRevs = [bundleData["base"]]
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2551 compression = ""
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2552 all = bundleData["all"]
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2553
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2554 fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2555 None,
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2556 self.tr("Create changegroup"),
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2557 self.__lastChangeGroupPath or repodir,
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2558 self.tr("Mercurial Changegroup Files (*.hg)"),
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2559 None,
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2560 E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2561
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2562 if not fname:
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2563 return # user aborted
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2564
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2565 ext = QFileInfo(fname).suffix()
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2566 if not ext:
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2567 ex = selectedFilter.split("(*")[1].split(")")[0]
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2568 if ex:
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2569 fname += ex
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2570 if QFileInfo(fname).exists():
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2571 res = E5MessageBox.yesNo(
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2572 self.__ui,
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2573 self.tr("Create changegroup"),
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2574 self.tr("<p>The Mercurial changegroup file <b>{0}</b> "
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2575 "already exists. Overwrite it?</p>")
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2576 .format(fname),
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2577 icon=E5MessageBox.Warning)
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2578 if not res:
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2579 return
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2580 fname = Utilities.toNativeSeparators(fname)
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2581 self.__lastChangeGroupPath = os.path.dirname(fname)
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2582
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2583 args = self.initCommand("bundle")
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2584 if all:
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2585 args.append("--all")
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2586 for rev in revs:
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2587 args.append("--rev")
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2588 args.append(rev)
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2589 for baseRev in baseRevs:
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2590 args.append("--base")
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2591 args.append(baseRev)
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2592 if compression:
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2593 args.append("--type")
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2594 args.append(compression)
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2595 args.append(fname)
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2596
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2597 dia = HgDialog(self.tr('Create changegroup'), self)
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2598 res = dia.startProcess(args, repodir)
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2599 if res:
59ed7b2dd952 Started to add a 'Create Changegroup' action to the Mercurial log browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5496
diff changeset
2600 dia.exec_()
199
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2601
213
42bb97ff0bbb Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
2602 def hgPreviewBundle(self, name):
42bb97ff0bbb Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
2603 """
216
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2604 Public method used to view the log of incoming changes from a
213
42bb97ff0bbb Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
2605 changegroup file.
42bb97ff0bbb Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
2606
218
633aa53976ae Added code to identify a Mercurial changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 216
diff changeset
2607 @param name directory name on which to base the changegroup (string)
213
42bb97ff0bbb Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
2608 """
219
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2609 dname, fname = self.splitPath(name)
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2610
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2611 # find the root of the repo
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
2612 repodir = dname
219
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2613 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2614 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: 1315
diff changeset
2615 if os.path.splitdrive(repodir)[1] == os.sep:
219
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2616 return
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2617
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 880
diff changeset
2618 file = E5FileDialog.getOpenFileName(
213
42bb97ff0bbb Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
2619 None,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2620 self.tr("Preview changegroup"),
2576
b984efd69f15 Little extension to the Mercurial plug-in to remember the path of the recently used changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2543
diff changeset
2621 self.__lastChangeGroupPath or repodir,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2622 self.tr("Mercurial Changegroup Files (*.hg);;All Files (*)"))
213
42bb97ff0bbb Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
2623 if file:
2597
951e631c9c1d Fixed a bug in the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2576
diff changeset
2624 self.__lastChangeGroupPath = os.path.dirname(file)
2576
b984efd69f15 Little extension to the Mercurial plug-in to remember the path of the recently used changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2543
diff changeset
2625
5452
9f89364d9ffd Removed the VCS log dialogs in favour of the log browser dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
2626 if self.logBrowserIncoming is None:
9f89364d9ffd Removed the VCS log dialogs in favour of the log browser dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
2627 from .HgLogBrowserDialog import HgLogBrowserDialog
9f89364d9ffd Removed the VCS log dialogs in favour of the log browser dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
2628 self.logBrowserIncoming = \
9f89364d9ffd Removed the VCS log dialogs in favour of the log browser dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
2629 HgLogBrowserDialog(self, mode="incoming")
9f89364d9ffd Removed the VCS log dialogs in favour of the log browser dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
2630 self.logBrowserIncoming.show()
9f89364d9ffd Removed the VCS log dialogs in favour of the log browser dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
2631 self.logBrowserIncoming.raise_()
9f89364d9ffd Removed the VCS log dialogs in favour of the log browser dialogs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
2632 self.logBrowserIncoming.start(name, bundle=file)
213
42bb97ff0bbb Added code to preview a changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 207
diff changeset
2633
199
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2634 def hgUnbundle(self, name):
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2635 """
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2636 Public method to apply changegroup files.
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2637
219
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2638 @param name directory name (string)
1283
5766284d4393 Fixed a few issues in the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1282
diff changeset
2639 @return flag indicating, that the update contained an add
5766284d4393 Fixed a few issues in the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1282
diff changeset
2640 or delete (boolean)
199
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2641 """
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2642 dname, fname = self.splitPath(name)
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2643
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2644 # find the root of the repo
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
2645 repodir = dname
199
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2646 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2647 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: 1315
diff changeset
2648 if os.path.splitdrive(repodir)[1] == os.sep:
199
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2649 return
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2650
1283
5766284d4393 Fixed a few issues in the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1282
diff changeset
2651 res = False
882
34b86be88bf0 Redid the native file dialog code to be future proof.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 880
diff changeset
2652 files = E5FileDialog.getOpenFileNames(
199
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2653 None,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2654 self.tr("Apply changegroups"),
2576
b984efd69f15 Little extension to the Mercurial plug-in to remember the path of the recently used changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2543
diff changeset
2655 self.__lastChangeGroupPath or repodir,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2656 self.tr("Mercurial Changegroup Files (*.hg);;All Files (*)"))
199
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2657 if files:
2576
b984efd69f15 Little extension to the Mercurial plug-in to remember the path of the recently used changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2543
diff changeset
2658 self.__lastChangeGroupPath = os.path.dirname(files[0])
b984efd69f15 Little extension to the Mercurial plug-in to remember the path of the recently used changegroup file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2543
diff changeset
2659
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
2660 update = E5MessageBox.yesNo(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
2661 self.__ui,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2662 self.tr("Apply changegroups"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2663 self.tr("""Shall the working directory be updated?"""),
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
2664 yesDefault=True)
199
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2665
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
2666 args = self.initCommand("unbundle")
199
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2667 if update:
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2668 args.append("--update")
1283
5766284d4393 Fixed a few issues in the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1282
diff changeset
2669 args.append("--verbose")
199
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2670 args.extend(files)
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2671
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2672 dia = HgDialog(self.tr('Apply changegroups'), self)
199
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2673 res = dia.startProcess(args, repodir)
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2674 if res:
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2675 dia.exec_()
1283
5766284d4393 Fixed a few issues in the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1282
diff changeset
2676 res = dia.hasAddOrDelete()
5766284d4393 Fixed a few issues in the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1282
diff changeset
2677 self.checkVCSStatus()
5766284d4393 Fixed a few issues in the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1282
diff changeset
2678 return res
199
675623ee5d7d Added changegroup related actions to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 194
diff changeset
2679
202
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2680 def hgBisect(self, name, subcommand):
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2681 """
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2682 Public method to perform bisect commands.
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2683
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2684 @param name file/directory name (string)
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2685 @param subcommand name of the subcommand (string, one of 'good', 'bad',
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2686 'skip' or 'reset')
2962
d6c9d1ca2da4 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2844
diff changeset
2687 @exception ValueError raised to indicate an invalid bisect subcommand
202
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2688 """
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2689 if subcommand not in ("good", "bad", "skip", "reset"):
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2690 raise ValueError(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2691 self.tr("Bisect subcommand ({0}) invalid.")
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
2692 .format(subcommand))
202
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2693
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2694 dname, fname = self.splitPath(name)
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2695
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2696 # find the root of the repo
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
2697 repodir = dname
202
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2698 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2699 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: 1315
diff changeset
2700 if os.path.splitdrive(repodir)[1] == os.sep:
202
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2701 return
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2702
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2703 rev = ""
1274
442c748018c5 Added code to the Mercurial plug-in to support multiple revisions where appropriate.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1267
diff changeset
2704 if subcommand in ("good", "bad", "skip"):
2405
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2352
diff changeset
2705 from .HgRevisionSelectionDialog import HgRevisionSelectionDialog
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
2706 dlg = HgRevisionSelectionDialog(self.hgGetTagsList(repodir),
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
2707 self.hgGetBranchesList(repodir),
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
2708 self.hgGetBookmarksList(repodir))
202
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2709 if dlg.exec_() == QDialog.Accepted:
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2710 rev = dlg.getRevision()
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2711 else:
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2712 return
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2713
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
2714 args = self.initCommand("bisect")
202
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2715 args.append("--{0}".format(subcommand))
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2716 if rev:
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2717 args.append(rev)
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2718
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
2719 dia = HgDialog(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2720 self.tr('Mercurial Bisect ({0})').format(subcommand), self)
202
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2721 res = dia.startProcess(args, repodir)
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2722 if res:
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2723 dia.exec_()
6854bb0beda5 Added bisect commands to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 199
diff changeset
2724
216
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2725 def hgForget(self, name):
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2726 """
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2727 Public method used to remove a file from the Mercurial repository.
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2728
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2729 This will not remove the file from the project directory.
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2730
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
2731 @param name file/directory name to be removed (string or list of
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
2732 strings))
216
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2733 """
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
2734 args = self.initCommand("forget")
216
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2735 args.append('-v')
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2736
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2737 if isinstance(name, list):
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2738 dname, fnames = self.splitPathList(name)
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2739 self.addArguments(args, name)
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2740 else:
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2741 dname, fname = self.splitPath(name)
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2742 args.append(name)
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2743
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2744 # find the root of the repo
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2745 repodir = dname
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2746 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2747 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: 1315
diff changeset
2748 if os.path.splitdrive(repodir)[1] == os.sep:
219
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2749 return
216
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2750
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 553
diff changeset
2751 dia = HgDialog(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2752 self.tr('Removing files from the Mercurial repository only'),
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
2753 self)
216
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2754 res = dia.startProcess(args, repodir)
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2755 if res:
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2756 dia.exec_()
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2757 if isinstance(name, list):
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2758 self.__forgotNames.extend(name)
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2759 else:
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2760 self.__forgotNames.append(name)
6f9713e8d570 Added actions to identify the repo, to forget about files and added an additional status to be reported by the status monitor.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 213
diff changeset
2761
219
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2762 def hgBackout(self, name):
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2763 """
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
2764 Public method used to backout an earlier changeset from the Mercurial
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
2765 repository.
219
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2766
1005
6986db425aa2 Added support for "hg rollback" to the Mercurial interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 966
diff changeset
2767 @param name directory name (string or list of strings)
219
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2768 """
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2769 dname, fname = self.splitPath(name)
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2770
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2771 # find the root of the repo
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
2772 repodir = dname
219
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2773 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2774 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: 1315
diff changeset
2775 if os.path.splitdrive(repodir)[1] == os.sep:
219
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2776 return
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2777
2405
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2352
diff changeset
2778 from .HgBackoutDialog import HgBackoutDialog
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
2779 dlg = HgBackoutDialog(self.hgGetTagsList(repodir),
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
2780 self.hgGetBranchesList(repodir),
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
2781 self.hgGetBookmarksList(repodir))
219
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2782 if dlg.exec_() == QDialog.Accepted:
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2783 rev, merge, date, user, message = dlg.getParameters()
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2784 if not rev:
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
2785 E5MessageBox.warning(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
2786 self.__ui,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2787 self.tr("Backing out changeset"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2788 self.tr("""No revision given. Aborting..."""))
219
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2789 return
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2790
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
2791 args = self.initCommand("backout")
219
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2792 args.append('-v')
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2793 if merge:
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2794 args.append('--merge')
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2795 if date:
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2796 args.append('--date')
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2797 args.append(date)
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2798 if user:
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2799 args.append('--user')
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2800 args.append(user)
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2801 args.append('--message')
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2802 args.append(message)
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2803 args.append(rev)
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2804
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2805 dia = HgDialog(self.tr('Backing out changeset'), self)
219
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2806 res = dia.startProcess(args, repodir)
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2807 if res:
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2808 dia.exec_()
0553aa793753 Added action to back out a changeset and added code to update automatically after a pull (Mercurial Plug-in).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 218
diff changeset
2809
1005
6986db425aa2 Added support for "hg rollback" to the Mercurial interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 966
diff changeset
2810 def hgRollback(self, name):
6986db425aa2 Added support for "hg rollback" to the Mercurial interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 966
diff changeset
2811 """
6986db425aa2 Added support for "hg rollback" to the Mercurial interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 966
diff changeset
2812 Public method used to rollback the last transaction.
6986db425aa2 Added support for "hg rollback" to the Mercurial interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 966
diff changeset
2813
6986db425aa2 Added support for "hg rollback" to the Mercurial interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 966
diff changeset
2814 @param name directory name (string or list of strings)
6986db425aa2 Added support for "hg rollback" to the Mercurial interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 966
diff changeset
2815 """
6986db425aa2 Added support for "hg rollback" to the Mercurial interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 966
diff changeset
2816 dname, fname = self.splitPath(name)
6986db425aa2 Added support for "hg rollback" to the Mercurial interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 966
diff changeset
2817
6986db425aa2 Added support for "hg rollback" to the Mercurial interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 966
diff changeset
2818 # find the root of the repo
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
2819 repodir = dname
1005
6986db425aa2 Added support for "hg rollback" to the Mercurial interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 966
diff changeset
2820 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
6986db425aa2 Added support for "hg rollback" to the Mercurial interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 966
diff changeset
2821 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: 1315
diff changeset
2822 if os.path.splitdrive(repodir)[1] == os.sep:
1005
6986db425aa2 Added support for "hg rollback" to the Mercurial interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 966
diff changeset
2823 return
6986db425aa2 Added support for "hg rollback" to the Mercurial interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 966
diff changeset
2824
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
2825 res = E5MessageBox.yesNo(
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
2826 None,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2827 self.tr("Rollback last transaction"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2828 self.tr("""Are you sure you want to rollback the last"""
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2829 """ transaction?"""),
1011
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
2830 icon=E5MessageBox.Warning)
1005
6986db425aa2 Added support for "hg rollback" to the Mercurial interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 966
diff changeset
2831 if res:
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2832 dia = HgDialog(self.tr('Rollback last transaction'), self)
1005
6986db425aa2 Added support for "hg rollback" to the Mercurial interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 966
diff changeset
2833 res = dia.startProcess(["rollback"], repodir)
6986db425aa2 Added support for "hg rollback" to the Mercurial interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 966
diff changeset
2834 if res:
6986db425aa2 Added support for "hg rollback" to the Mercurial interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 966
diff changeset
2835 dia.exec_()
6986db425aa2 Added support for "hg rollback" to the Mercurial interface.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 966
diff changeset
2836
305
5cf9e308f342 Added action to start a Mercurial server to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 276
diff changeset
2837 def hgServe(self, name):
5cf9e308f342 Added action to start a Mercurial server to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 276
diff changeset
2838 """
1064
10bdbb173c0f Added an entry to the Mercurial menu to edit the user configuration file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
2839 Public method used to serve the project.
305
5cf9e308f342 Added action to start a Mercurial server to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 276
diff changeset
2840
5cf9e308f342 Added action to start a Mercurial server to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 276
diff changeset
2841 @param name directory name (string)
5cf9e308f342 Added action to start a Mercurial server to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 276
diff changeset
2842 """
5cf9e308f342 Added action to start a Mercurial server to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 276
diff changeset
2843 dname, fname = self.splitPath(name)
5cf9e308f342 Added action to start a Mercurial server to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 276
diff changeset
2844
5cf9e308f342 Added action to start a Mercurial server to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 276
diff changeset
2845 # find the root of the repo
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
2846 repodir = dname
305
5cf9e308f342 Added action to start a Mercurial server to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 276
diff changeset
2847 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
5cf9e308f342 Added action to start a Mercurial server to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 276
diff changeset
2848 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: 1315
diff changeset
2849 if os.path.splitdrive(repodir)[1] == os.sep:
305
5cf9e308f342 Added action to start a Mercurial server to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 276
diff changeset
2850 return
5cf9e308f342 Added action to start a Mercurial server to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 276
diff changeset
2851
2405
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2352
diff changeset
2852 from .HgServeDialog import HgServeDialog
305
5cf9e308f342 Added action to start a Mercurial server to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 276
diff changeset
2853 self.serveDlg = HgServeDialog(self, repodir)
5cf9e308f342 Added action to start a Mercurial server to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 276
diff changeset
2854 self.serveDlg.show()
5cf9e308f342 Added action to start a Mercurial server to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 276
diff changeset
2855
1311
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2856 def hgImport(self, name):
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2857 """
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2858 Public method to import a patch file.
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2859
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2860 @param name directory name of the project to import into (string)
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2861 @return flag indicating, that the import contained an add, a delete
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2862 or a change to the project file (boolean)
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2863 """
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2864 dname, fname = self.splitPath(name)
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2865
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2866 # find the root of the repo
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2867 repodir = dname
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2868 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2869 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: 1315
diff changeset
2870 if os.path.splitdrive(repodir)[1] == os.sep:
1311
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2871 return
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2872
2405
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2352
diff changeset
2873 from .HgImportDialog import HgImportDialog
1311
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2874 dlg = HgImportDialog()
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2875 if dlg.exec_() == QDialog.Accepted:
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2876 patchFile, noCommit, message, date, user, stripCount, force = \
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2877 dlg.getParameters()
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2878
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
2879 args = self.initCommand("import")
1311
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2880 args.append("--verbose")
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2881 if noCommit:
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2882 args.append("--no-commit")
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2883 else:
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2884 if message:
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2885 args.append('--message')
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2886 args.append(message)
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2887 if date:
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2888 args.append('--date')
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2889 args.append(date)
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2890 if user:
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2891 args.append('--user')
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2892 args.append(user)
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2893 if stripCount != 1:
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2894 args.append("--strip")
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2895 args.append(str(stripCount))
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2896 if force:
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2897 args.append("--force")
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2898 args.append(patchFile)
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2899
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2900 dia = HgDialog(self.tr("Import Patch"), self)
1311
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2901 res = dia.startProcess(args, repodir)
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2902 if res:
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2903 dia.exec_()
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2904 res = dia.hasAddOrDelete()
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2905 self.checkVCSStatus()
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2906 else:
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2907 res = False
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2908
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2909 return res
95685f9ad9f8 Added support for importing patches to the Mercurial interface and made it's revert action check, if the project should be reread.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1307
diff changeset
2910
1315
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2911 def hgExport(self, name):
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2912 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2913 Public method to export patches to files.
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2914
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2915 @param name directory name of the project to export from (string)
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2916 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2917 dname, fname = self.splitPath(name)
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2918
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2919 # find the root of the repo
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2920 repodir = dname
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2921 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2922 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: 1315
diff changeset
2923 if os.path.splitdrive(repodir)[1] == os.sep:
1315
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2924 return
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2925
2405
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2352
diff changeset
2926 from .HgExportDialog import HgExportDialog
1315
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2927 dlg = HgExportDialog()
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2928 if dlg.exec_() == QDialog.Accepted:
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2929 filePattern, revisions, switchParent, allText, noDates, git = \
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2930 dlg.getParameters()
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2931
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
2932 args = self.initCommand("export")
1315
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2933 args.append("--output")
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2934 args.append(filePattern)
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2935 args.append("--verbose")
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2936 if switchParent:
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2937 args.append("--switch-parent")
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2938 if allText:
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2939 args.append("--text")
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2940 if noDates:
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2941 args.append("--nodates")
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2942 if git:
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2943 args.append("--git")
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2944 for rev in revisions:
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2945 args.append(rev)
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2946
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2947 dia = HgDialog(self.tr("Export Patches"), self)
1315
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2948 res = dia.startProcess(args, repodir)
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2949 if res:
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2950 dia.exec_()
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1312
diff changeset
2951
1608
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2952 def hgPhase(self, name, data=None):
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2953 """
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2954 Public method to change the phase of revisions.
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2955
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2956 @param name directory name of the project to export from (string)
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2957 @param data tuple giving phase data (list of revisions, phase, flag
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2958 indicating a forced operation) (list of strings, string, boolean)
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2959 @return flag indicating success (boolean)
2962
d6c9d1ca2da4 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2844
diff changeset
2960 @exception ValueError raised to indicate an invalid phase
1608
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2961 """
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2962 dname, fname = self.splitPath(name)
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2963
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2964 # find the root of the repo
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2965 repodir = dname
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2966 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2967 repodir = os.path.dirname(repodir)
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2968 if os.path.splitdrive(repodir)[1] == os.sep:
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2969 return False
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2970
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2971 if data is None:
2405
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2352
diff changeset
2972 from .HgPhaseDialog import HgPhaseDialog
1608
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2973 dlg = HgPhaseDialog()
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2974 if dlg.exec_() == QDialog.Accepted:
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2975 data = dlg.getData()
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2976
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2977 if data:
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2978 revs, phase, force = data
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2979
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
2980 args = self.initCommand("phase")
1608
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2981 if phase == "p":
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2982 args.append("--public")
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2983 elif phase == "d":
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2984 args.append("--draft")
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2985 elif phase == "s":
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2986 args.append("--secret")
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2987 else:
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2988 raise ValueError("Invalid phase given.")
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2989 if force:
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2990 args.append("--force")
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2991 for rev in revs:
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2992 args.append(rev)
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2993
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
2994 dia = HgDialog(self.tr("Change Phase"), self)
1608
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2995 res = dia.startProcess(args, repodir)
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2996 if res:
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2997 dia.exec_()
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2998 res = dia.normalExitWithoutErrors()
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
2999 else:
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
3000 res = False
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
3001
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
3002 return res
b6390d242303 Added capability to change the phase of changesets to the project VCS menu and the Mercurial log-browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
3003
2543
eb9472947653 Added a 'Copy Changesets' button to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2405
diff changeset
3004 def hgGraft(self, path, revs=None):
1655
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3005 """
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3006 Public method to copy changesets from another branch.
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3007
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3008 @param path directory name of the project (string)
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3009 @param revs list of revisions to show in the revisions pane (list of
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3010 strings)
1655
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3011 @return flag indicating that the project should be reread (boolean)
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3012 """
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3013 # find the root of the repo
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3014 repodir = self.splitPath(path)[0]
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3015 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3016 repodir = os.path.dirname(repodir)
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3017 if os.path.splitdrive(repodir)[1] == os.sep:
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3018 return False
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3019
2405
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2352
diff changeset
3020 from .HgGraftDialog import HgGraftDialog
1655
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3021 res = False
2543
eb9472947653 Added a 'Copy Changesets' button to the Mercurial log browser dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2405
diff changeset
3022 dlg = HgGraftDialog(self, revs)
1655
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3023 if dlg.exec_() == QDialog.Accepted:
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3024 revs, (userData, currentUser, userName), \
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
3025 (dateData, currentDate, dateStr), log, dryrun = dlg.getData()
1655
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3026
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
3027 args = self.initCommand("graft")
1655
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3028 args.append("--verbose")
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3029 if userData:
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3030 if currentUser:
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3031 args.append("--currentuser")
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3032 else:
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3033 args.append("--user")
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3034 args.append(userName)
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3035 if dateData:
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3036 if currentDate:
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3037 args.append("--currentdate")
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3038 else:
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3039 args.append("--date")
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3040 args.append(dateStr)
1990
7fee3661c4f9 Added support for --log and --dry-run to the hg graft operation and added code to disable the (deprecated) transplant menu for Mercurial 2.3.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1906
diff changeset
3041 if log:
7fee3661c4f9 Added support for --log and --dry-run to the hg graft operation and added code to disable the (deprecated) transplant menu for Mercurial 2.3.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1906
diff changeset
3042 args.append("--log")
7fee3661c4f9 Added support for --log and --dry-run to the hg graft operation and added code to disable the (deprecated) transplant menu for Mercurial 2.3.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1906
diff changeset
3043 if dryrun:
7fee3661c4f9 Added support for --log and --dry-run to the hg graft operation and added code to disable the (deprecated) transplant menu for Mercurial 2.3.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1906
diff changeset
3044 args.append("--dry-run")
1655
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3045 args.extend(revs)
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3046
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
3047 dia = HgDialog(self.tr('Copy Changesets'), self)
1655
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3048 res = dia.startProcess(args, repodir)
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3049 if res:
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3050 dia.exec_()
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3051 res = dia.hasAddOrDelete()
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3052 self.checkVCSStatus()
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3053 return res
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3054
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3055 def hgGraftContinue(self, path):
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3056 """
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3057 Public method to continue copying changesets from another branch.
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3058
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3059 @param path directory name of the project (string)
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3060 @return flag indicating that the project should be reread (boolean)
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3061 """
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3062 # find the root of the repo
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3063 repodir = self.splitPath(path)[0]
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3064 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3065 repodir = os.path.dirname(repodir)
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3066 if os.path.splitdrive(repodir)[1] == os.sep:
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3067 return
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3068
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
3069 args = self.initCommand("graft")
1655
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3070 args.append("--continue")
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3071 args.append("--verbose")
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3072
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
3073 dia = HgDialog(self.tr('Copy Changesets (Continue)'), self)
1655
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3074 res = dia.startProcess(args, repodir)
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3075 if res:
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3076 dia.exec_()
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3077 res = dia.hasAddOrDelete()
1767
bfc7ba3b3663 Fixed an issue in the Mercurial "graft continue" command.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1655
diff changeset
3078 self.checkVCSStatus()
1655
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3079 return res
d2b583fdde1c Added support for the graft command as of Mercurial 2.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1608
diff changeset
3080
2820
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3081 def hgArchive(self):
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3082 """
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3083 Public method to create an unversioned archive from the repository.
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3084 """
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3085 # find the root of the repo
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3086 repodir = self.__projectHelper.getProject().getProjectPath()
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3087 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3088 repodir = os.path.dirname(repodir)
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3089 if os.path.splitdrive(repodir)[1] == os.sep:
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3090 return
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3091
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3092 from .HgArchiveDialog import HgArchiveDialog
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3093 dlg = HgArchiveDialog(self)
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3094 if dlg.exec_() == QDialog.Accepted:
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3095 archive, type_, prefix, subrepos = dlg.getData()
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3096
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
3097 args = self.initCommand("archive")
2820
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3098 if type_:
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3099 args.append("--type")
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3100 args.append(type_)
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3101 if prefix:
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3102 args.append("--prefix")
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3103 args.append(prefix)
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3104 if subrepos:
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3105 args.append("--subrepos")
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3106 args.append(archive)
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3107
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
3108 dia = HgDialog(self.tr("Create Unversioned Archive"), self)
2820
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3109 res = dia.startProcess(args, repodir)
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3110 if res:
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3111 dia.exec_()
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2815
diff changeset
3112
5284
3a2f9bee8974 Added an action to the Mercurial administration menu to clean out the backup bundles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5283
diff changeset
3113 def hgDeleteBackups(self):
3a2f9bee8974 Added an action to the Mercurial administration menu to clean out the backup bundles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5283
diff changeset
3114 """
3a2f9bee8974 Added an action to the Mercurial administration menu to clean out the backup bundles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5283
diff changeset
3115 Public method to delete all backup bundles in the backup area.
3a2f9bee8974 Added an action to the Mercurial administration menu to clean out the backup bundles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5283
diff changeset
3116 """
3a2f9bee8974 Added an action to the Mercurial administration menu to clean out the backup bundles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5283
diff changeset
3117 # find the root of the repo
3a2f9bee8974 Added an action to the Mercurial administration menu to clean out the backup bundles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5283
diff changeset
3118 repodir = self.__projectHelper.getProject().getProjectPath()
3a2f9bee8974 Added an action to the Mercurial administration menu to clean out the backup bundles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5283
diff changeset
3119 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
3a2f9bee8974 Added an action to the Mercurial administration menu to clean out the backup bundles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5283
diff changeset
3120 repodir = os.path.dirname(repodir)
3a2f9bee8974 Added an action to the Mercurial administration menu to clean out the backup bundles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5283
diff changeset
3121 if os.path.splitdrive(repodir)[1] == os.sep:
3a2f9bee8974 Added an action to the Mercurial administration menu to clean out the backup bundles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5283
diff changeset
3122 return
3a2f9bee8974 Added an action to the Mercurial administration menu to clean out the backup bundles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5283
diff changeset
3123
3a2f9bee8974 Added an action to the Mercurial administration menu to clean out the backup bundles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5283
diff changeset
3124 backupdir = os.path.join(repodir, self.adminDir, "strip-backup")
3a2f9bee8974 Added an action to the Mercurial administration menu to clean out the backup bundles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5283
diff changeset
3125 yes = E5MessageBox.yesNo(
3a2f9bee8974 Added an action to the Mercurial administration menu to clean out the backup bundles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5283
diff changeset
3126 self.__ui,
3a2f9bee8974 Added an action to the Mercurial administration menu to clean out the backup bundles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5283
diff changeset
3127 self.tr("Delete All Backups"),
3a2f9bee8974 Added an action to the Mercurial administration menu to clean out the backup bundles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5283
diff changeset
3128 self.tr("""<p>Do you really want to delete all backup bundles"""
3a2f9bee8974 Added an action to the Mercurial administration menu to clean out the backup bundles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5283
diff changeset
3129 """ stored the backup area <b>{0}</b>?</p>""").format(
3a2f9bee8974 Added an action to the Mercurial administration menu to clean out the backup bundles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5283
diff changeset
3130 backupdir))
3a2f9bee8974 Added an action to the Mercurial administration menu to clean out the backup bundles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5283
diff changeset
3131 if yes:
3a2f9bee8974 Added an action to the Mercurial administration menu to clean out the backup bundles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5283
diff changeset
3132 shutil.rmtree(backupdir, True)
3a2f9bee8974 Added an action to the Mercurial administration menu to clean out the backup bundles.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5283
diff changeset
3133
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3134 ###########################################################################
1905
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3135 ## Methods to deal with subrepositories are below.
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3136 ###########################################################################
1905
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3137
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3138 def getHgSubPath(self):
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3139 """
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3140 Public method to get the path to the .hgsub file containing the
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3141 definitions of sub-repositories.
1905
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3142
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3143 @return full path of the .hgsub file (string)
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3144 """
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3145 ppath = self.__projectHelper.getProject().getProjectPath()
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3146 return os.path.join(ppath, ".hgsub")
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3147
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3148 def hasSubrepositories(self):
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3149 """
1906
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3150 Public method to check, if the project might have sub-repositories.
1905
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3151
1906
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3152 @return flag indicating the existence of sub-repositories (boolean)
1905
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3153 """
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3154 hgsub = self.getHgSubPath()
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3155 return os.path.isfile(hgsub) and os.stat(hgsub).st_size > 0
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3156
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3157 def hgAddSubrepository(self):
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3158 """
1906
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3159 Public method to add a sub-repository.
1905
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3160 """
2405
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2352
diff changeset
3161 from .HgAddSubrepositoryDialog import HgAddSubrepositoryDialog
1905
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3162 ppath = self.__projectHelper.getProject().getProjectPath()
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3163 hgsub = self.getHgSubPath()
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3164 dlg = HgAddSubrepositoryDialog(ppath)
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3165 if dlg.exec_() == QDialog.Accepted:
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3166 relPath, subrepoType, subrepoUrl = dlg.getData()
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3167 if subrepoType == "hg":
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3168 url = subrepoUrl
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3169 else:
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3170 url = "[{0}]{1}".format(subrepoType, subrepoUrl)
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3171 entry = "{0} = {1}\n".format(relPath, url)
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3172
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3173 contents = []
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3174 if os.path.isfile(hgsub):
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3175 # file exists; check, if such an entry exists already
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3176 needsAdd = False
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3177 try:
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3178 f = open(hgsub, "r")
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3179 contents = f.readlines()
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3180 f.close()
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3181 except IOError as err:
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
3182 E5MessageBox.critical(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
3183 self.__ui,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
3184 self.tr("Add Sub-repository"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
3185 self.tr(
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3186 """<p>The sub-repositories file .hgsub could not"""
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3187 """ be read.</p><p>Reason: {0}</p>""")
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
3188 .format(str(err)))
1905
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3189 return
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3190
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3191 if entry in contents:
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
3192 E5MessageBox.critical(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
3193 self.__ui,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
3194 self.tr("Add Sub-repository"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
3195 self.tr(
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3196 """<p>The sub-repositories file .hgsub already"""
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3197 """ contains an entry <b>{0}</b>."""
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3198 """ Aborting...</p>""").format(entry))
1905
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3199 return
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3200 else:
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3201 needsAdd = True
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3202
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3203 if contents and not contents[-1].endswith("\n"):
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3204 contents[-1] = contents[-1] + "\n"
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3205 contents.append(entry)
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3206 try:
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3207 f = open(hgsub, "w")
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3208 f.writelines(contents)
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3209 f.close()
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3210 except IOError as err:
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
3211 E5MessageBox.critical(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
3212 self.__ui,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
3213 self.tr("Add Sub-repository"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
3214 self.tr(
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3215 """<p>The sub-repositories file .hgsub could not"""
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3216 """ be written to.</p><p>Reason: {0}</p>""")
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
3217 .format(str(err)))
1905
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3218 return
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3219
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3220 if needsAdd:
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3221 self.vcsAdd(hgsub)
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3222 self.__projectHelper.getProject().appendFile(hgsub)
7ad9161c5293 Started adding support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1882
diff changeset
3223
1906
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3224 def hgRemoveSubrepositories(self):
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3225 """
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3226 Public method to remove sub-repositories.
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3227 """
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3228 hgsub = self.getHgSubPath()
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3229
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3230 subrepositories = []
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3231 if not os.path.isfile(hgsub):
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
3232 E5MessageBox.critical(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
3233 self.__ui,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
3234 self.tr("Remove Sub-repositories"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
3235 self.tr("""<p>The sub-repositories file .hgsub does not"""
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
3236 """ exist. Aborting...</p>"""))
1906
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3237 return
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3238
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3239 try:
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3240 f = open(hgsub, "r")
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3241 subrepositories = [line.strip() for line in f.readlines()]
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3242 f.close()
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3243 except IOError as err:
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
3244 E5MessageBox.critical(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
3245 self.__ui,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
3246 self.tr("Remove Sub-repositories"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
3247 self.tr("""<p>The sub-repositories file .hgsub could not"""
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
3248 """ be read.</p><p>Reason: {0}</p>""")
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
3249 .format(str(err)))
1906
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3250 return
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3251
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3252 from .HgRemoveSubrepositoriesDialog import \
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3253 HgRemoveSubrepositoriesDialog
1906
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3254 dlg = HgRemoveSubrepositoriesDialog(subrepositories)
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3255 if dlg.exec_() == QDialog.Accepted:
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3256 subrepositories, removedSubrepos, deleteSubrepos = dlg.getData()
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3257 contents = "\n".join(subrepositories) + "\n"
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3258 try:
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3259 f = open(hgsub, "w")
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3260 f.write(contents)
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3261 f.close()
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3262 except IOError as err:
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
3263 E5MessageBox.critical(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
3264 self.__ui,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
3265 self.tr("Remove Sub-repositories"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
3266 self.tr(
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3267 """<p>The sub-repositories file .hgsub could not"""
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3268 """ be written to.</p><p>Reason: {0}</p>""")
3036
30c81c9e88b8 Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
3269 .format(str(err)))
1906
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3270 return
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3271
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3272 if deleteSubrepos:
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3273 ppath = self.__projectHelper.getProject().getProjectPath()
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3274 for removedSubrepo in removedSubrepos:
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3275 subrepoPath = removedSubrepo.split("=", 1)[0].strip()
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3276 subrepoAbsPath = os.path.join(ppath, subrepoPath)
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3277 shutil.rmtree(subrepoAbsPath, True)
8487f9c2533b Continued implementing support for Mercurial sub-repositories.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1905
diff changeset
3278
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3279 ###########################################################################
3277
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3280 ## Methods to handle configuration dependent stuff are below.
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3281 ###########################################################################
1011
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3282
3277
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3283 def __checkDefaults(self):
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3284 """
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3285 Private method to check, if the default and default-push URLs
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3286 have been configured.
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3287 """
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
3288 args = self.initCommand("showconfig")
3277
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3289 args.append('paths')
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3290
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3291 output = ""
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3292 if self.__client is None:
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3293 process = QProcess()
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3294 self.__repoDir and process.setWorkingDirectory(self.__repoDir)
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3295 process.start('hg', args)
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3296 procStarted = process.waitForStarted(5000)
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3297 if procStarted:
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3298 finished = process.waitForFinished(30000)
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3299 if finished and process.exitCode() == 0:
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
3300 output = str(process.readAllStandardOutput(),
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
3301 self.getEncoding(), 'replace')
3277
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3302 else:
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3303 output, error = self.__client.runcommand(args)
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3304
3416
efce6439595a Fixed an issue with Mercurial not realizing some changes of the configuration.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3407
diff changeset
3305 self.__defaultConfigured = False
efce6439595a Fixed an issue with Mercurial not realizing some changes of the configuration.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3407
diff changeset
3306 self.__defaultPushConfigured = False
3277
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3307 if output:
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3308 for line in output.splitlines():
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3309 if line.startswith("paths.default=") and \
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3310 not line.strip().endswith("="):
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3311 self.__defaultConfigured = True
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3312 if line.startswith("paths.default-push=") and \
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3313 not line.strip().endswith("="):
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3314 self.__defaultPushConfigured = True
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3315
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3316 def canPull(self):
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3317 """
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3318 Public method to check, if pull is possible.
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3319
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3320 @return flag indicating pull capability (boolean)
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3321 """
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3322 return self.__defaultConfigured
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3323
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3324 def canPush(self):
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3325 """
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3326 Public method to check, if push is possible.
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3327
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3328 @return flag indicating push capability (boolean)
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3329 """
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3330 return self.__defaultPushConfigured or self.__defaultConfigured
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3331
1011
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3332 def __iniFileChanged(self, path):
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3333 """
1064
10bdbb173c0f Added an entry to the Mercurial menu to edit the user configuration file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1061
diff changeset
3334 Private slot to handle a change of the Mercurial configuration file.
1011
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3335
1020
adf7e95f05e7 Finished Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1019
diff changeset
3336 @param path name of the changed file (string)
1011
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3337 """
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
3338 if self.__client:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
3339 ok, err = self.__client.restartServer()
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
3340 if not ok:
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
3341 E5MessageBox.warning(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
3342 None,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
3343 self.tr("Mercurial Command Server"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3185
diff changeset
3344 self.tr(
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3345 """<p>The Mercurial Command Server could not be"""
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3346 """ restarted.</p><p>Reason: {0}</p>""").format(err))
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
3347 self.__client = None
3277
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3348
3305
cf4f22a19dc6 Added support for the Mercurial shelve extension to the project browser VCS context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3302
diff changeset
3349 self.__getExtensionsInfo()
cf4f22a19dc6 Added support for the Mercurial shelve extension to the project browser VCS context menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3302
diff changeset
3350
3277
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3351 if self.__repoIniFile and path == self.__repoIniFile:
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3352 self.__checkDefaults()
3416
efce6439595a Fixed an issue with Mercurial not realizing some changes of the configuration.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3407
diff changeset
3353
efce6439595a Fixed an issue with Mercurial not realizing some changes of the configuration.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3407
diff changeset
3354 self.iniFileChanged.emit()
1011
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3355
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3356 def __monitorRepoIniFile(self, name):
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3357 """
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3358 Private slot to add a repository configuration file to the list of
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3359 monitored files.
1011
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3360
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3361 @param name directory name pointing into the repository (string)
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3362 """
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3363 dname, fname = self.splitPath(name)
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3364
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3365 # find the root of the repo
1017
919147f2b518 Continued with Mercurial bookmark support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1011
diff changeset
3366 repodir = dname
1011
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3367 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3368 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: 1315
diff changeset
3369 if not repodir or os.path.splitdrive(repodir)[1] == os.sep:
1011
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3370 return
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3371
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3372 cfgFile = os.path.join(repodir, self.adminDir, "hgrc")
1210
269dccec0c33 Fixed an issue related to try to monitor a non-existing hgrc file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1093
diff changeset
3373 if os.path.exists(cfgFile):
269dccec0c33 Fixed an issue related to try to monitor a non-existing hgrc file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1093
diff changeset
3374 self.__iniWatcher.addPath(cfgFile)
3277
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3375 self.__repoIniFile = cfgFile
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3376 self.__checkDefaults()
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3377
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3378 ###########################################################################
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3379 ## Methods to handle extensions are below.
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3380 ###########################################################################
1011
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3381
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3382 def __getExtensionsInfo(self):
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3383 """
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3384 Private method to get the active extensions from Mercurial.
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3385 """
1088
9c84b88cff09 Refined the Mercurial extensions code a little bit to deal with torn of menus in a better way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1085
diff changeset
3386 activeExtensions = sorted(self.__activeExtensions)
1011
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3387 self.__activeExtensions = []
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3388
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
3389 args = self.initCommand("showconfig")
1011
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3390 args.append('extensions')
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
3391
1252
ef9b2f7f1dd5 Fixed an issue accessing an undefined variable.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1243
diff changeset
3392 output = ""
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
3393 if self.__client is None:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
3394 process = QProcess()
3277
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3395 self.__repoDir and process.setWorkingDirectory(self.__repoDir)
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
3396 process.start('hg', args)
2771
281c9b30dd91 Changed all QProcess.waitForStarted() calls to use a 5s timeout (except the debugger interfaces, which have a 10s timeout).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2718
diff changeset
3397 procStarted = process.waitForStarted(5000)
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
3398 if procStarted:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
3399 finished = process.waitForFinished(30000)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
3400 if finished and process.exitCode() == 0:
3302
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
3401 output = str(process.readAllStandardOutput(),
e92f0dd51979 Removed the Mercurial support for a command options dialog and added useable global options to the Mercurial config page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3290
diff changeset
3402 self.getEncoding(), 'replace')
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
3403 else:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
3404 output, error = self.__client.runcommand(args)
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
3405
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
3406 if output:
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
3407 for line in output.splitlines():
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3408 extensionName = \
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3409 line.split("=", 1)[0].strip().split(".")[-1].strip()
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
3410 self.__activeExtensions.append(extensionName)
1011
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3411
1088
9c84b88cff09 Refined the Mercurial extensions code a little bit to deal with torn of menus in a better way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1085
diff changeset
3412 if activeExtensions != sorted(self.__activeExtensions):
9c84b88cff09 Refined the Mercurial extensions code a little bit to deal with torn of menus in a better way.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1085
diff changeset
3413 self.activeExtensionsChanged.emit()
1011
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3414
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3415 def isExtensionActive(self, extensionName):
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3416 """
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3417 Public method to check, if an extension is active.
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3418
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3419 @param extensionName name of the extension to check for (string)
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3420 @return flag indicating an active extension (boolean)
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3421 """
1990
7fee3661c4f9 Added support for --log and --dry-run to the hg graft operation and added code to disable the (deprecated) transplant menu for Mercurial 2.3.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1906
diff changeset
3422 extensionName = extensionName.strip()
7fee3661c4f9 Added support for --log and --dry-run to the hg graft operation and added code to disable the (deprecated) transplant menu for Mercurial 2.3.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1906
diff changeset
3423 isActive = extensionName in self.__activeExtensions
7fee3661c4f9 Added support for --log and --dry-run to the hg graft operation and added code to disable the (deprecated) transplant menu for Mercurial 2.3.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1906
diff changeset
3424
7fee3661c4f9 Added support for --log and --dry-run to the hg graft operation and added code to disable the (deprecated) transplant menu for Mercurial 2.3.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1906
diff changeset
3425 return isActive
1011
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3426
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3427 def getExtensionObject(self, extensionName):
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3428 """
1061
3e21869872e3 Fixed PEP-8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1034
diff changeset
3429 Public method to get a reference to an extension object.
1011
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3430
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3431 @param extensionName name of the extension (string)
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3432 @return reference to the extension object (boolean)
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3433 """
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3434 return self.__extensions[extensionName]
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3435
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3436 ###########################################################################
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3437 ## Methods to get the helper objects are below.
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3438 ###########################################################################
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3439
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3440 def vcsGetProjectBrowserHelper(self, browser, project,
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3441 isTranslationsBrowser=False):
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3442 """
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3443 Public method to instantiate a helper object for the different
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3444 project browsers.
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3445
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3446 @param browser reference to the project browser object
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3447 @param project reference to the project object
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3448 @param isTranslationsBrowser flag indicating, the helper is requested
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3449 for the translations browser (this needs some special treatment)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3450 @return the project browser helper object
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3451 """
2405
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2352
diff changeset
3452 from .ProjectBrowserHelper import HgProjectBrowserHelper
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3453 return HgProjectBrowserHelper(self, browser, project,
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3454 isTranslationsBrowser)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3455
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3456 def vcsGetProjectHelper(self, project):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3457 """
1011
0b118aefae5b Started implementing the Mercurial bookmarks support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1005
diff changeset
3458 Public method to instantiate a helper object for the project.
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3459
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3460 @param project reference to the project object
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3461 @return the project helper object
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3462 """
3277
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3463 # find the root of the repo
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3464 repodir = project.getProjectPath()
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3465 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3466 repodir = os.path.dirname(repodir)
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3467 if not repodir or os.path.splitdrive(repodir)[1] == os.sep:
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3468 repodir = ""
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3469 break
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3470 if repodir:
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3471 self.__repoDir = repodir
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3472
1076
6fb76985422b Changed code to close torn off submenus of the Mercurial project menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1075
diff changeset
3473 self.__projectHelper = self.__plugin.getProjectHelper()
6fb76985422b Changed code to close torn off submenus of the Mercurial project menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1075
diff changeset
3474 self.__projectHelper.setObjects(self, project)
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
3475 self.__monitorRepoIniFile(project.getProjectPath())
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
3476
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3477 if repodir:
3277
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3478 from .HgClient import HgClient
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3479 client = HgClient(repodir, "utf-8", self)
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3480 ok, err = client.startServer()
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3481 if ok:
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3482 self.__client = client
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3483 else:
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3484 E5MessageBox.warning(
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3485 None,
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3486 self.tr("Mercurial Command Server"),
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3487 self.tr(
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3488 """<p>The Mercurial Command Server could not be"""
b7d9c75223e3 Made availablity of push/pull related actions dependent on configured remote repository (default/default-push in .hg/hgrc).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3276
diff changeset
3489 """ started.</p><p>Reason: {0}</p>""").format(err))
1240
4d5fc346bd3b Started implementing an interface to the Mercurial command server (as of Mercurial >= 1.9).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1237
diff changeset
3490
1076
6fb76985422b Changed code to close torn off submenus of the Mercurial project menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1075
diff changeset
3491 return self.__projectHelper
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3492
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3493 ###########################################################################
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3494 ## Status Monitor Thread methods
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3495 ###########################################################################
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3496
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3497 def _createStatusMonitorThread(self, interval, project):
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3498 """
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3499 Protected method to create an instance of the VCS status monitor
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3500 thread.
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3501
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3502 @param interval check interval for the monitor thread in seconds
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2974
diff changeset
3503 (integer)
248
f4561c24989a Changed code to better deal with project relative paths on Windows systems.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 240
diff changeset
3504 @param project reference to the project object (Project)
178
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3505 @return reference to the monitor thread (QThread)
dd9f0bca5e2f Added plugin for Mercurial version control system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3506 """
2405
d4b5f3bd4720 Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2352
diff changeset
3507 from .HgStatusMonitorThread import HgStatusMonitorThread
660
7a1d92437921 Added code to check, if a pull --update modified the project structure.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 564
diff changeset
3508 return HgStatusMonitorThread(interval, project, self)
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3509
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3510 ###########################################################################
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3511 ## Bookmarks methods
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3512 ###########################################################################
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3513
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3514 def hgListBookmarks(self, path):
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3515 """
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3516 Public method used to list the available bookmarks.
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3517
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3518 @param path directory name of the project (string)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3519 """
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3520 self.bookmarksList = []
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3521
4126
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
3522 if self.bookmarksListDlg is None:
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
3523 from .HgBookmarksListDialog import HgBookmarksListDialog
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
3524 self.bookmarksListDlg = HgBookmarksListDialog(self)
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3525 self.bookmarksListDlg.show()
4126
c28d0cf3b639 Some changes to the various VCS interfaces to use one dialog instead of creating a new one each time.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4072
diff changeset
3526 self.bookmarksListDlg.raise_()
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3527 self.bookmarksListDlg.start(path, self.bookmarksList)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3528
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3529 def hgGetBookmarksList(self, repodir):
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3530 """
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3531 Public method to get the list of bookmarks.
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3532
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3533 @param repodir directory name of the repository (string)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3534 @return list of bookmarks (list of string)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3535 """
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3536 args = self.initCommand("bookmarks")
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3537
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3538 client = self.getClient()
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3539 output = ""
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3540 if client:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3541 output = client.runcommand(args)[0]
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3542 else:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3543 process = QProcess()
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3544 process.setWorkingDirectory(repodir)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3545 process.start('hg', args)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3546 procStarted = process.waitForStarted(5000)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3547 if procStarted:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3548 finished = process.waitForFinished(30000)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3549 if finished and process.exitCode() == 0:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3550 output = str(process.readAllStandardOutput(),
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3551 self.getEncoding(), 'replace')
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3552
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3553 self.bookmarksList = []
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3554 for line in output.splitlines():
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3555 li = line.strip().split()
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3556 if li[-1][0] in "1234567890":
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3557 # last element is a rev:changeset
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3558 del li[-1]
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3559 if li[0] == "*":
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3560 del li[0]
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3561 name = " ".join(li)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3562 self.bookmarksList.append(name)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3563
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3564 return self.bookmarksList[:]
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3565
5322
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3566 def hgBookmarkDefine(self, name, revision=None, bookmark=None):
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3567 """
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3568 Public method to define a bookmark.
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3569
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3570 @param name file/directory name (string)
5322
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3571 @param revision revision to set bookmark for (string)
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3572 @param bookmark name of the bookmark (string)
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3573 """
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3574 # find the root of the repo
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3575 repodir = self.splitPath(name)[0]
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3576 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3577 repodir = os.path.dirname(repodir)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3578 if os.path.splitdrive(repodir)[1] == os.sep:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3579 return
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3580
5322
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3581 if bool(revision) and bool(bookmark):
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3582 ok = True
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3583 else:
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3584 from .HgBookmarkDialog import HgBookmarkDialog
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3585 dlg = HgBookmarkDialog(HgBookmarkDialog.DEFINE_MODE,
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3586 self.hgGetTagsList(repodir),
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3587 self.hgGetBranchesList(repodir),
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3588 self.hgGetBookmarksList(repodir))
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3589 if dlg.exec_() == QDialog.Accepted:
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3590 revision, bookmark = dlg.getData()
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3591 ok = True
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3592 else:
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3593 ok = False
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3594
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3595 if ok:
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3596 args = self.initCommand("bookmarks")
5322
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3597 if revision:
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3598 args.append("--rev")
5322
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3599 args.append(revision)
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3600 args.append(bookmark)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3601
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3602 dia = HgDialog(self.tr('Mercurial Bookmark'), self)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3603 res = dia.startProcess(args, repodir)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3604 if res:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3605 dia.exec_()
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3606
5328
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3607 def hgBookmarkDelete(self, name, bookmark=None):
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3608 """
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3609 Public method to delete a bookmark.
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3610
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3611 @param name file/directory name (string)
5328
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3612 @param bookmark name of the bookmark (string)
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3613 """
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3614 # find the root of the repo
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3615 repodir = self.splitPath(name)[0]
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3616 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3617 repodir = os.path.dirname(repodir)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3618 if os.path.splitdrive(repodir)[1] == os.sep:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3619 return
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3620
5328
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3621 if bookmark:
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3622 ok = True
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3623 else:
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3624 bookmark, ok = QInputDialog.getItem(
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3625 None,
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3626 self.tr("Delete Bookmark"),
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3627 self.tr("Select the bookmark to be deleted:"),
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3628 [""] + sorted(self.hgGetBookmarksList(repodir)),
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3629 0, True)
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3630 if ok and bookmark:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3631 args = self.initCommand("bookmarks")
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3632 args.append("--delete")
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3633 args.append(bookmark)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3634
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3635 dia = HgDialog(self.tr('Delete Mercurial Bookmark'), self)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3636 res = dia.startProcess(args, repodir)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3637 if res:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3638 dia.exec_()
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3639
5328
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3640 def hgBookmarkRename(self, name, renameInfo=None):
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3641 """
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3642 Public method to rename a bookmark.
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3643
5328
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3644 @param name file/directory name
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3645 @type str
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3646 @param renameInfo old and new names of the bookmark
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3647 @type tuple of str and str
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3648 """
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3649 # find the root of the repo
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3650 repodir = self.splitPath(name)[0]
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3651 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3652 repodir = os.path.dirname(repodir)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3653 if os.path.splitdrive(repodir)[1] == os.sep:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3654 return
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3655
5328
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3656 if not renameInfo:
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3657 from .HgBookmarkRenameDialog import HgBookmarkRenameDialog
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3658 dlg = HgBookmarkRenameDialog(self.hgGetBookmarksList(repodir))
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3659 if dlg.exec_() == QDialog.Accepted:
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3660 renameInfo = dlg.getData()
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3661
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3662 if renameInfo:
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3663 args = self.initCommand("bookmarks")
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3664 args.append("--rename")
5328
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3665 args.append(renameInfo[0])
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3666 args.append(renameInfo[1])
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3667
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3668 dia = HgDialog(self.tr('Rename Mercurial Bookmark'), self)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3669 res = dia.startProcess(args, repodir)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3670 if res:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3671 dia.exec_()
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3672
5322
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3673 def hgBookmarkMove(self, name, revision=None, bookmark=None):
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3674 """
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3675 Public method to move a bookmark.
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3676
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3677 @param name file/directory name (string)
5322
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3678 @param revision revision to set bookmark for (string)
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3679 @param bookmark name of the bookmark (string)
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3680 """
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3681 # find the root of the repo
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3682 repodir = self.splitPath(name)[0]
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3683 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3684 repodir = os.path.dirname(repodir)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3685 if os.path.splitdrive(repodir)[1] == os.sep:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3686 return
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3687
5322
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3688 if bool(revision) and bool(bookmark):
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3689 ok = True
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3690 else:
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3691 from .HgBookmarkDialog import HgBookmarkDialog
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3692 dlg = HgBookmarkDialog(HgBookmarkDialog.MOVE_MODE,
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3693 self.hgGetTagsList(repodir),
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3694 self.hgGetBranchesList(repodir),
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3695 self.hgGetBookmarksList(repodir))
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3696 if dlg.exec_() == QDialog.Accepted:
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3697 revision, bookmark = dlg.getData()
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3698 ok = True
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3699 else:
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3700 ok = False
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3701
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3702 if ok:
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3703 args = self.initCommand("bookmarks")
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3704 args.append("--force")
5322
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3705 if revision:
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3706 args.append("--rev")
5322
c2cabdca0734 Added bookmark actions to the Mercurial Log Browser tools menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5319
diff changeset
3707 args.append(revision)
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3708 args.append(bookmark)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3709
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3710 dia = HgDialog(self.tr('Move Mercurial Bookmark'), self)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3711 res = dia.startProcess(args, repodir)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3712 if res:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3713 dia.exec_()
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3714
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3715 def hgBookmarkIncoming(self, name):
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3716 """
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3717 Public method to show a list of incoming bookmarks.
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3718
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3719 @param name file/directory name (string)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3720 """
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3721 from .HgBookmarksInOutDialog import HgBookmarksInOutDialog
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3722 self.bookmarksInOutDlg = HgBookmarksInOutDialog(
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3723 self, HgBookmarksInOutDialog.INCOMING)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3724 self.bookmarksInOutDlg.show()
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3725 self.bookmarksInOutDlg.start(name)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3726
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3727 def hgBookmarkOutgoing(self, name):
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3728 """
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3729 Public method to show a list of outgoing bookmarks.
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3730
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3731 @param name file/directory name (string)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3732 """
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3733 from .HgBookmarksInOutDialog import HgBookmarksInOutDialog
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3734 self.bookmarksInOutDlg = HgBookmarksInOutDialog(
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3735 self, HgBookmarksInOutDialog.OUTGOING)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3736 self.bookmarksInOutDlg.show()
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3737 self.bookmarksInOutDlg.start(name)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3738
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3739 def __getInOutBookmarks(self, repodir, incoming):
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3740 """
3591
2f2a4a76dd22 Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3586
diff changeset
3741 Private method to get the list of incoming or outgoing bookmarks.
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3742
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3743 @param repodir directory name of the repository (string)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3744 @param incoming flag indicating to get incoming bookmarks (boolean)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3745 @return list of bookmarks (list of string)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3746 """
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3747 bookmarksList = []
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3748
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3749 if incoming:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3750 args = self.initCommand("incoming")
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3751 else:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3752 args = self.initCommand("outgoing")
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3753 args.append('--bookmarks')
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3754
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3755 client = self.getClient()
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3756 output = ""
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3757 if client:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3758 output = client.runcommand(args)[0]
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3759 else:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3760 process = QProcess()
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3761 process.setWorkingDirectory(repodir)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3762 process.start('hg', args)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3763 procStarted = process.waitForStarted(5000)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3764 if procStarted:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3765 finished = process.waitForFinished(30000)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3766 if finished and process.exitCode() == 0:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3767 output = str(process.readAllStandardOutput(),
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3768 self.getEncoding(), 'replace')
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3769
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3770 for line in output.splitlines():
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3771 if line.startswith(" "):
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3772 li = line.strip().split()
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3773 del li[-1]
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3774 name = " ".join(li)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3775 bookmarksList.append(name)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3776
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3777 return bookmarksList
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3778
5328
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3779 def hgBookmarkPull(self, name, current=False, bookmark=None):
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3780 """
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3781 Public method to pull a bookmark from a remote repository.
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3782
5091
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3783 @param name file/directory name
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3784 @type str
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3785 @param current flag indicating to pull the current bookmark
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3786 @type bool
5328
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3787 @param bookmark name of the bookmark
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3788 @type str
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3789 """
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3790 # find the root of the repo
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3791 repodir = self.splitPath(name)[0]
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3792 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3793 repodir = os.path.dirname(repodir)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3794 if os.path.splitdrive(repodir)[1] == os.sep:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3795 return
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3796
5091
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3797 if current:
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3798 bookmark = "."
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3799 ok = True
5328
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3800 elif bookmark:
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3801 ok = True
5091
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3802 else:
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3803 bookmarks = self.__getInOutBookmarks(repodir, True)
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3804 bookmark, ok = QInputDialog.getItem(
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3805 None,
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3806 self.tr("Pull Bookmark"),
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3807 self.tr("Select the bookmark to be pulled:"),
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3808 [""] + sorted(bookmarks),
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3809 0, True)
5328
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3810
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3811 if ok and bookmark:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3812 args = self.initCommand("pull")
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3813 args.append('--bookmark')
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3814 args.append(bookmark)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3815
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3816 dia = HgDialog(self.tr(
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3817 'Pulling bookmark from a remote Mercurial repository'),
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3818 self)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3819 res = dia.startProcess(args, repodir)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3820 if res:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3821 dia.exec_()
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3822
5328
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3823 def hgBookmarkPush(self, name, current=False, bookmark=None):
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3824 """
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3825 Public method to push a bookmark to a remote repository.
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3826
5091
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3827 @param name file/directory name
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3828 @type str
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3829 @param current flag indicating to push the current bookmark
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3830 @type bool
5328
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3831 @param bookmark name of the bookmark
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3832 @type str
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3833 """
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3834 # find the root of the repo
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3835 repodir = self.splitPath(name)[0]
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3836 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3837 repodir = os.path.dirname(repodir)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3838 if os.path.splitdrive(repodir)[1] == os.sep:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3839 return
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3840
5091
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3841 if current:
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3842 bookmark = "."
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3843 ok = True
5328
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3844 elif bookmark:
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3845 ok = True
5091
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3846 else:
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3847 bookmarks = self.__getInOutBookmarks(repodir, False)
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3848 bookmark, ok = QInputDialog.getItem(
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3849 None,
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3850 self.tr("Push Bookmark"),
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3851 self.tr("Select the bookmark to be push:"),
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3852 [""] + sorted(bookmarks),
dfac14826e78 Added support for pulling and pushing the current bookmark to the Mercurial plug-in.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
3853 0, True)
5328
9c11e9285a46 Added context menu actions to the Mercurial bookmark list dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5322
diff changeset
3854
3562
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3855 if ok and bookmark:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3856 args = self.initCommand("push")
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3857 args.append('--bookmark')
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3858 args.append(bookmark)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3859
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3860 dia = HgDialog(self.tr(
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3861 'Pushing bookmark to a remote Mercurial repository'),
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3862 self)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3863 res = dia.startProcess(args, repodir)
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3864 if res:
ef3f13a2c599 Moved the Mercurial bookmarks to the Mercurial core because they are no extension since Mercurial 1.8 anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3515
diff changeset
3865 dia.exec_()

eric ide

mercurial