Plugins/VcsPlugins/vcsMercurial/hg.py

changeset 2405
d4b5f3bd4720
parent 2352
21971ebfaaef
child 2525
8b507a9a2d40
child 2543
eb9472947653
equal deleted inserted replaced
2404:cba0ff902c2b 2405:d4b5f3bd4720
24 24
25 from VCS.VersionControl import VersionControl 25 from VCS.VersionControl import VersionControl
26 from VCS.RepositoryInfoDialog import VcsRepositoryInfoDialog 26 from VCS.RepositoryInfoDialog import VcsRepositoryInfoDialog
27 27
28 from .HgDialog import HgDialog 28 from .HgDialog import HgDialog
29 from .HgCommitDialog import HgCommitDialog
30 from .HgOptionsDialog import HgOptionsDialog
31 from .HgNewProjectOptionsDialog import HgNewProjectOptionsDialog
32 from .HgCopyDialog import HgCopyDialog
33 from .HgLogDialog import HgLogDialog
34 from .HgLogBrowserDialog import HgLogBrowserDialog
35 from .HgDiffDialog import HgDiffDialog
36 from .HgRevisionsSelectionDialog import HgRevisionsSelectionDialog
37 from .HgRevisionSelectionDialog import HgRevisionSelectionDialog
38 from .HgMultiRevisionSelectionDialog import HgMultiRevisionSelectionDialog
39 from .HgMergeDialog import HgMergeDialog
40 from .HgStatusMonitorThread import HgStatusMonitorThread
41 from .HgStatusDialog import HgStatusDialog
42 from .HgAnnotateDialog import HgAnnotateDialog
43 from .HgTagDialog import HgTagDialog
44 from .HgTagBranchListDialog import HgTagBranchListDialog
45 from .HgCommandDialog import HgCommandDialog
46 from .HgBundleDialog import HgBundleDialog
47 from .HgBackoutDialog import HgBackoutDialog
48 from .HgServeDialog import HgServeDialog
49 from .HgUtilities import getConfigPath
50 from .HgClient import HgClient
51 from .HgImportDialog import HgImportDialog
52 from .HgExportDialog import HgExportDialog
53 from .HgPhaseDialog import HgPhaseDialog
54 from .HgGraftDialog import HgGraftDialog
55 from .HgAddSubrepositoryDialog import HgAddSubrepositoryDialog
56 from .HgRemoveSubrepositoriesDialog import HgRemoveSubrepositoriesDialog
57
58 from .BookmarksExtension.bookmarks import Bookmarks
59 from .QueuesExtension.queues import Queues
60 from .FetchExtension.fetch import Fetch
61 from .PurgeExtension.purge import Purge
62 from .GpgExtension.gpg import Gpg
63 from .TransplantExtension.transplant import Transplant
64 from .RebaseExtension.rebase import Rebase
65
66 from .ProjectBrowserHelper import HgProjectBrowserHelper
67
68 from UI.DeleteFilesConfirmationDialog import DeleteFilesConfirmationDialog
69 29
70 import Preferences 30 import Preferences
71 import Utilities 31 import Utilities
72 32
73 33
149 109
150 self.__forgotNames = [] 110 self.__forgotNames = []
151 111
152 self.__activeExtensions = [] 112 self.__activeExtensions = []
153 113
114 from .HgUtilities import getConfigPath
154 self.__iniWatcher = QFileSystemWatcher(self) 115 self.__iniWatcher = QFileSystemWatcher(self)
155 self.__iniWatcher.fileChanged.connect(self.__iniFileChanged) 116 self.__iniWatcher.fileChanged.connect(self.__iniFileChanged)
156 cfgFile = getConfigPath() 117 cfgFile = getConfigPath()
157 if os.path.exists(cfgFile): 118 if os.path.exists(cfgFile):
158 self.__iniWatcher.addPath(cfgFile) 119 self.__iniWatcher.addPath(cfgFile)
159 120
160 self.__client = None 121 self.__client = None
161 122
162 # instantiate the extensions 123 # instantiate the extensions
124 from .BookmarksExtension.bookmarks import Bookmarks
125 from .QueuesExtension.queues import Queues
126 from .FetchExtension.fetch import Fetch
127 from .PurgeExtension.purge import Purge
128 from .GpgExtension.gpg import Gpg
129 from .TransplantExtension.transplant import Transplant
130 from .RebaseExtension.rebase import Rebase
163 self.__extensions = { 131 self.__extensions = {
164 "bookmarks": Bookmarks(self), 132 "bookmarks": Bookmarks(self),
165 "mq": Queues(self), 133 "mq": Queues(self),
166 "fetch": Fetch(self), 134 "fetch": Fetch(self),
167 "purge": Purge(self), 135 "purge": Purge(self),
408 msg = message 376 msg = message
409 377
410 if not noDialog and not msg: 378 if not noDialog and not msg:
411 # call CommitDialog and get message from there 379 # call CommitDialog and get message from there
412 if self.__commitDialog is None: 380 if self.__commitDialog is None:
381 from .HgCommitDialog import HgCommitDialog
413 self.__commitDialog = HgCommitDialog(self, self.__ui) 382 self.__commitDialog = HgCommitDialog(self, self.__ui)
414 self.__commitDialog.accepted.connect(self.__vcsCommit_Step2) 383 self.__commitDialog.accepted.connect(self.__vcsCommit_Step2)
415 self.__commitDialog.show() 384 self.__commitDialog.show()
416 self.__commitDialog.raise_() 385 self.__commitDialog.raise_()
417 self.__commitDialog.activateWindow() 386 self.__commitDialog.activateWindow()
719 if target is None: 688 if target is None:
720 return False 689 return False
721 force = True 690 force = True
722 accepted = True 691 accepted = True
723 else: 692 else:
693 from .HgCopyDialog import HgCopyDialog
724 dlg = HgCopyDialog(name, None, True, force) 694 dlg = HgCopyDialog(name, None, True, force)
725 accepted = dlg.exec_() == QDialog.Accepted 695 accepted = dlg.exec_() == QDialog.Accepted
726 if accepted: 696 if accepted:
727 target, force = dlg.getData() 697 target, force = dlg.getData()
728 698
790 bookmarksList = \ 760 bookmarksList = \
791 self.getExtensionObject("bookmarks").hgGetBookmarksList(repodir) 761 self.getExtensionObject("bookmarks").hgGetBookmarksList(repodir)
792 else: 762 else:
793 bookmarksList = None 763 bookmarksList = None
794 764
765 from .HgMultiRevisionSelectionDialog import HgMultiRevisionSelectionDialog
795 dlg = HgMultiRevisionSelectionDialog( 766 dlg = HgMultiRevisionSelectionDialog(
796 self.hgGetTagsList(repodir), 767 self.hgGetTagsList(repodir),
797 self.hgGetBranchesList(repodir), 768 self.hgGetBranchesList(repodir),
798 bookmarksList, 769 bookmarksList,
799 emptyRevsOk=True, 770 emptyRevsOk=True,
800 showLimit=True, 771 showLimit=True,
801 limitDefault=self.getPlugin().getPreferences("LogLimit")) 772 limitDefault=self.getPlugin().getPreferences("LogLimit"))
802 if dlg.exec_() == QDialog.Accepted: 773 if dlg.exec_() == QDialog.Accepted:
803 revs, noEntries = dlg.getRevisions() 774 revs, noEntries = dlg.getRevisions()
775 from .HgLogDialog import HgLogDialog
804 self.log = HgLogDialog(self) 776 self.log = HgLogDialog(self)
805 self.log.show() 777 self.log.show()
806 self.log.start(name, noEntries=noEntries, revisions=revs) 778 self.log.start(name, noEntries=noEntries, revisions=revs)
807 779
808 def vcsDiff(self, name): 780 def vcsDiff(self, name):
827 return 799 return
828 else: 800 else:
829 project = e5App().getObject("Project") 801 project = e5App().getObject("Project")
830 if nam == project.ppath and not project.saveAllScripts(): 802 if nam == project.ppath and not project.saveAllScripts():
831 return 803 return
804 from .HgDiffDialog import HgDiffDialog
832 self.diff = HgDiffDialog(self) 805 self.diff = HgDiffDialog(self)
833 self.diff.show() 806 self.diff.show()
834 QApplication.processEvents() 807 QApplication.processEvents()
835 self.diff.start(name) 808 self.diff.start(name)
836 809
840 Mercurial repository. 813 Mercurial repository.
841 814
842 @param name file/directory name(s) to show the status of 815 @param name file/directory name(s) to show the status of
843 (string or list of strings) 816 (string or list of strings)
844 """ 817 """
818 from .HgStatusDialog import HgStatusDialog
845 self.status = HgStatusDialog(self) 819 self.status = HgStatusDialog(self)
846 self.status.show() 820 self.status.show()
847 self.status.start(name) 821 self.status.start(name)
848 822
849 def vcsTag(self, name): 823 def vcsTag(self, name):
859 while not os.path.isdir(os.path.join(repodir, self.adminDir)): 833 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
860 repodir = os.path.dirname(repodir) 834 repodir = os.path.dirname(repodir)
861 if os.path.splitdrive(repodir)[1] == os.sep: 835 if os.path.splitdrive(repodir)[1] == os.sep:
862 return 836 return
863 837
838 from .HgTagDialog import HgTagDialog
864 dlg = HgTagDialog(self.hgGetTagsList(repodir)) 839 dlg = HgTagDialog(self.hgGetTagsList(repodir))
865 if dlg.exec_() == QDialog.Accepted: 840 if dlg.exec_() == QDialog.Accepted:
866 tag, tagOp = dlg.getParameters() 841 tag, tagOp = dlg.getParameters()
867 else: 842 else:
868 return 843 return
917 return False 892 return False
918 893
919 project = e5App().getObject("Project") 894 project = e5App().getObject("Project")
920 names = [project.getRelativePath(nam) for nam in names] 895 names = [project.getRelativePath(nam) for nam in names]
921 if names[0]: 896 if names[0]:
897 from UI.DeleteFilesConfirmationDialog import DeleteFilesConfirmationDialog
922 dlg = DeleteFilesConfirmationDialog(self.parent(), 898 dlg = DeleteFilesConfirmationDialog(self.parent(),
923 self.trUtf8("Revert changes"), 899 self.trUtf8("Revert changes"),
924 self.trUtf8("Do you really want to revert all changes to these files" 900 self.trUtf8("Do you really want to revert all changes to these files"
925 " or directories?"), 901 " or directories?"),
926 names) 902 names)
965 if self.isExtensionActive("bookmarks"): 941 if self.isExtensionActive("bookmarks"):
966 bookmarksList = \ 942 bookmarksList = \
967 self.getExtensionObject("bookmarks").hgGetBookmarksList(repodir) 943 self.getExtensionObject("bookmarks").hgGetBookmarksList(repodir)
968 else: 944 else:
969 bookmarksList = None 945 bookmarksList = None
946 from .HgMergeDialog import HgMergeDialog
970 dlg = HgMergeDialog(force, self.hgGetTagsList(repodir), 947 dlg = HgMergeDialog(force, self.hgGetTagsList(repodir),
971 self.hgGetBranchesList(repodir), 948 self.hgGetBranchesList(repodir),
972 bookmarksList) 949 bookmarksList)
973 if dlg.exec_() == QDialog.Accepted: 950 if dlg.exec_() == QDialog.Accepted:
974 rev, force = dlg.getParameters() 951 rev, force = dlg.getParameters()
1010 if self.isExtensionActive("bookmarks"): 987 if self.isExtensionActive("bookmarks"):
1011 bookmarksList = \ 988 bookmarksList = \
1012 self.getExtensionObject("bookmarks").hgGetBookmarksList(repodir) 989 self.getExtensionObject("bookmarks").hgGetBookmarksList(repodir)
1013 else: 990 else:
1014 bookmarksList = None 991 bookmarksList = None
992 from .HgRevisionSelectionDialog import HgRevisionSelectionDialog
1015 dlg = HgRevisionSelectionDialog(self.hgGetTagsList(repodir), 993 dlg = HgRevisionSelectionDialog(self.hgGetTagsList(repodir),
1016 self.hgGetBranchesList(repodir), 994 self.hgGetBranchesList(repodir),
1017 bookmarksList) 995 bookmarksList)
1018 if dlg.exec_() == QDialog.Accepted: 996 if dlg.exec_() == QDialog.Accepted:
1019 rev = dlg.getRevision() 997 rev = dlg.getRevision()
1214 """ 1192 """
1215 Public method used to execute arbitrary mercurial commands. 1193 Public method used to execute arbitrary mercurial commands.
1216 1194
1217 @param name directory name of the working directory (string) 1195 @param name directory name of the working directory (string)
1218 """ 1196 """
1197 from .HgCommandDialog import HgCommandDialog
1219 dlg = HgCommandDialog(self.commandHistory, name) 1198 dlg = HgCommandDialog(self.commandHistory, name)
1220 if dlg.exec_() == QDialog.Accepted: 1199 if dlg.exec_() == QDialog.Accepted:
1221 command = dlg.getData() 1200 command = dlg.getData()
1222 commandList = Utilities.parseOptionString(command) 1201 commandList = Utilities.parseOptionString(command)
1223 1202
1249 @param project reference to the project object 1228 @param project reference to the project object
1250 @param archive name of the project in the repository (string) 1229 @param archive name of the project in the repository (string)
1251 @param editable flag indicating that the project name is editable (boolean) 1230 @param editable flag indicating that the project name is editable (boolean)
1252 @param parent parent widget (QWidget) 1231 @param parent parent widget (QWidget)
1253 """ 1232 """
1233 from .HgOptionsDialog import HgOptionsDialog
1254 return HgOptionsDialog(self, project, parent) 1234 return HgOptionsDialog(self, project, parent)
1255 1235
1256 def vcsNewProjectOptionsDialog(self, parent=None): 1236 def vcsNewProjectOptionsDialog(self, parent=None):
1257 """ 1237 """
1258 Public method to get a dialog to enter repository info for getting a new project. 1238 Public method to get a dialog to enter repository info for getting a new project.
1259 1239
1260 @param parent parent widget (QWidget) 1240 @param parent parent widget (QWidget)
1261 """ 1241 """
1242 from .HgNewProjectOptionsDialog import HgNewProjectOptionsDialog
1262 return HgNewProjectOptionsDialog(self, parent) 1243 return HgNewProjectOptionsDialog(self, parent)
1263 1244
1264 def vcsRepositoryInfos(self, ppath): 1245 def vcsRepositoryInfos(self, ppath):
1265 """ 1246 """
1266 Public method to retrieve information about the repository. 1247 Public method to retrieve information about the repository.
1405 1386
1406 @param name file/directory name to be copied (string) 1387 @param name file/directory name to be copied (string)
1407 @param project reference to the project object 1388 @param project reference to the project object
1408 @return flag indicating successful operation (boolean) 1389 @return flag indicating successful operation (boolean)
1409 """ 1390 """
1391 from .HgCopyDialog import HgCopyDialog
1410 dlg = HgCopyDialog(name) 1392 dlg = HgCopyDialog(name)
1411 res = False 1393 res = False
1412 if dlg.exec_() == QDialog.Accepted: 1394 if dlg.exec_() == QDialog.Accepted:
1413 target, force = dlg.getData() 1395 target, force = dlg.getData()
1414 1396
1531 1513
1532 @param path directory name of the project (string) 1514 @param path directory name of the project (string)
1533 @param tags flag indicating listing of branches or tags 1515 @param tags flag indicating listing of branches or tags
1534 (False = branches, True = tags) 1516 (False = branches, True = tags)
1535 """ 1517 """
1518 from .HgTagBranchListDialog import HgTagBranchListDialog
1536 self.tagbranchList = HgTagBranchListDialog(self) 1519 self.tagbranchList = HgTagBranchListDialog(self)
1537 self.tagbranchList.show() 1520 self.tagbranchList.show()
1538 if tags: 1521 if tags:
1539 if not self.showedTags: 1522 if not self.showedTags:
1540 self.showedTags = True 1523 self.showedTags = True
1558 """ 1541 """
1559 Public method to show the output of the hg annotate command. 1542 Public method to show the output of the hg annotate command.
1560 1543
1561 @param name file name to show the annotations for (string) 1544 @param name file name to show the annotations for (string)
1562 """ 1545 """
1546 from .HgAnnotateDialog import HgAnnotateDialog
1563 self.annotate = HgAnnotateDialog(self) 1547 self.annotate = HgAnnotateDialog(self)
1564 self.annotate.show() 1548 self.annotate.show()
1565 self.annotate.start(name) 1549 self.annotate.start(name)
1566 1550
1567 def hgExtendedDiff(self, name): 1551 def hgExtendedDiff(self, name):
1603 if self.isExtensionActive("bookmarks"): 1587 if self.isExtensionActive("bookmarks"):
1604 bookmarksList = \ 1588 bookmarksList = \
1605 self.getExtensionObject("bookmarks").hgGetBookmarksList(repodir) 1589 self.getExtensionObject("bookmarks").hgGetBookmarksList(repodir)
1606 else: 1590 else:
1607 bookmarksList = None 1591 bookmarksList = None
1592 from .HgRevisionsSelectionDialog import HgRevisionsSelectionDialog
1608 dlg = HgRevisionsSelectionDialog(self.hgGetTagsList(repodir), 1593 dlg = HgRevisionsSelectionDialog(self.hgGetTagsList(repodir),
1609 self.hgGetBranchesList(repodir), 1594 self.hgGetBranchesList(repodir),
1610 bookmarksList) 1595 bookmarksList)
1611 if dlg.exec_() == QDialog.Accepted: 1596 if dlg.exec_() == QDialog.Accepted:
1612 revisions = dlg.getRevisions() 1597 revisions = dlg.getRevisions()
1598 from .HgDiffDialog import HgDiffDialog
1613 self.diff = HgDiffDialog(self) 1599 self.diff = HgDiffDialog(self)
1614 self.diff.show() 1600 self.diff.show()
1615 self.diff.start(name, revisions) 1601 self.diff.start(name, revisions)
1616 1602
1617 def hgLogBrowser(self, path): 1603 def hgLogBrowser(self, path):
1619 Public method used to browse the log of a file/directory from the 1605 Public method used to browse the log of a file/directory from the
1620 Mercurial repository. 1606 Mercurial repository.
1621 1607
1622 @param path file/directory name to show the log of (string) 1608 @param path file/directory name to show the log of (string)
1623 """ 1609 """
1610 from .HgLogBrowserDialog import HgLogBrowserDialog
1624 self.logBrowser = HgLogBrowserDialog(self) 1611 self.logBrowser = HgLogBrowserDialog(self)
1625 self.logBrowser.show() 1612 self.logBrowser.show()
1626 self.logBrowser.start(path) 1613 self.logBrowser.start(path)
1627 1614
1628 def hgIncoming(self, name): 1615 def hgIncoming(self, name):
1631 Mercurial repository. 1618 Mercurial repository.
1632 1619
1633 @param name file/directory name to show the log of (string) 1620 @param name file/directory name to show the log of (string)
1634 """ 1621 """
1635 if self.getPlugin().getPreferences("UseLogBrowser"): 1622 if self.getPlugin().getPreferences("UseLogBrowser"):
1623 from .HgLogBrowserDialog import HgLogBrowserDialog
1636 self.logBrowser = HgLogBrowserDialog(self, mode="incoming") 1624 self.logBrowser = HgLogBrowserDialog(self, mode="incoming")
1637 self.logBrowser.show() 1625 self.logBrowser.show()
1638 self.logBrowser.start(name) 1626 self.logBrowser.start(name)
1639 else: 1627 else:
1628 from .HgLogDialog import HgLogDialog
1640 self.log = HgLogDialog(self, mode="incoming") 1629 self.log = HgLogDialog(self, mode="incoming")
1641 self.log.show() 1630 self.log.show()
1642 self.log.start(name) 1631 self.log.start(name)
1643 1632
1644 def hgOutgoing(self, name): 1633 def hgOutgoing(self, name):
1647 Mercurial repository. 1636 Mercurial repository.
1648 1637
1649 @param name file/directory name to show the log of (string) 1638 @param name file/directory name to show the log of (string)
1650 """ 1639 """
1651 if self.getPlugin().getPreferences("UseLogBrowser"): 1640 if self.getPlugin().getPreferences("UseLogBrowser"):
1641 from .HgLogBrowserDialog import HgLogBrowserDialog
1652 self.logBrowser = HgLogBrowserDialog(self, mode="outgoing") 1642 self.logBrowser = HgLogBrowserDialog(self, mode="outgoing")
1653 self.logBrowser.show() 1643 self.logBrowser.show()
1654 self.logBrowser.start(name) 1644 self.logBrowser.start(name)
1655 else: 1645 else:
1646 from .HgLogDialog import HgLogDialog
1656 self.log = HgLogDialog(self, mode="outgoing") 1647 self.log = HgLogDialog(self, mode="outgoing")
1657 self.log.show() 1648 self.log.show()
1658 self.log.start(name) 1649 self.log.start(name)
1659 1650
1660 def hgPull(self, name): 1651 def hgPull(self, name):
1907 1898
1908 def hgEditUserConfig(self): 1899 def hgEditUserConfig(self):
1909 """ 1900 """
1910 Public method used to edit the user configuration file. 1901 Public method used to edit the user configuration file.
1911 """ 1902 """
1903 from .HgUtilities import getConfigPath
1912 cfgFile = getConfigPath() 1904 cfgFile = getConfigPath()
1913 if not os.path.exists(cfgFile): 1905 if not os.path.exists(cfgFile):
1914 try: 1906 try:
1915 f = open(cfgFile, "w") 1907 f = open(cfgFile, "w")
1916 f.close() 1908 f.close()
2137 if self.isExtensionActive("bookmarks"): 2129 if self.isExtensionActive("bookmarks"):
2138 bookmarksList = \ 2130 bookmarksList = \
2139 self.getExtensionObject("bookmarks").hgGetBookmarksList(repodir) 2131 self.getExtensionObject("bookmarks").hgGetBookmarksList(repodir)
2140 else: 2132 else:
2141 bookmarksList = None 2133 bookmarksList = None
2134 from .HgBundleDialog import HgBundleDialog
2142 dlg = HgBundleDialog(self.hgGetTagsList(repodir), 2135 dlg = HgBundleDialog(self.hgGetTagsList(repodir),
2143 self.hgGetBranchesList(repodir), 2136 self.hgGetBranchesList(repodir),
2144 bookmarksList) 2137 bookmarksList)
2145 if dlg.exec_() == QDialog.Accepted: 2138 if dlg.exec_() == QDialog.Accepted:
2146 revs, baseRevs, compression, all = dlg.getParameters() 2139 revs, baseRevs, compression, all = dlg.getParameters()
2213 self.trUtf8("Preview changegroup"), 2206 self.trUtf8("Preview changegroup"),
2214 repodir, 2207 repodir,
2215 self.trUtf8("Mercurial Changegroup Files (*.hg);;All Files (*)")) 2208 self.trUtf8("Mercurial Changegroup Files (*.hg);;All Files (*)"))
2216 if file: 2209 if file:
2217 if self.getPlugin().getPreferences("UseLogBrowser"): 2210 if self.getPlugin().getPreferences("UseLogBrowser"):
2211 from .HgLogBrowserDialog import HgLogBrowserDialog
2218 self.logBrowser = \ 2212 self.logBrowser = \
2219 HgLogBrowserDialog(self, mode="incoming", bundle=file) 2213 HgLogBrowserDialog(self, mode="incoming", bundle=file)
2220 self.logBrowser.show() 2214 self.logBrowser.show()
2221 self.logBrowser.start(name) 2215 self.logBrowser.start(name)
2222 else: 2216 else:
2217 from .HgLogDialog import HgLogDialog
2223 self.log = HgLogDialog(self, mode="incoming", bundle=file) 2218 self.log = HgLogDialog(self, mode="incoming", bundle=file)
2224 self.log.show() 2219 self.log.show()
2225 self.log.start(name) 2220 self.log.start(name)
2226 2221
2227 def hgIdentifyBundle(self, name): 2222 def hgIdentifyBundle(self, name):
2324 if self.isExtensionActive("bookmarks"): 2319 if self.isExtensionActive("bookmarks"):
2325 bookmarksList = \ 2320 bookmarksList = \
2326 self.getExtensionObject("bookmarks").hgGetBookmarksList(repodir) 2321 self.getExtensionObject("bookmarks").hgGetBookmarksList(repodir)
2327 else: 2322 else:
2328 bookmarksList = None 2323 bookmarksList = None
2324 from .HgRevisionSelectionDialog import HgRevisionSelectionDialog
2329 dlg = HgRevisionSelectionDialog(self.hgGetTagsList(repodir), 2325 dlg = HgRevisionSelectionDialog(self.hgGetTagsList(repodir),
2330 self.hgGetBranchesList(repodir), 2326 self.hgGetBranchesList(repodir),
2331 bookmarksList, 2327 bookmarksList,
2332 showNone=True) 2328 showNone=True)
2333 if dlg.exec_() == QDialog.Accepted: 2329 if dlg.exec_() == QDialog.Accepted:
2401 if self.isExtensionActive("bookmarks"): 2397 if self.isExtensionActive("bookmarks"):
2402 bookmarksList = \ 2398 bookmarksList = \
2403 self.getExtensionObject("bookmarks").hgGetBookmarksList(repodir) 2399 self.getExtensionObject("bookmarks").hgGetBookmarksList(repodir)
2404 else: 2400 else:
2405 bookmarksList = None 2401 bookmarksList = None
2402 from .HgBackoutDialog import HgBackoutDialog
2406 dlg = HgBackoutDialog(self.hgGetTagsList(repodir), 2403 dlg = HgBackoutDialog(self.hgGetTagsList(repodir),
2407 self.hgGetBranchesList(repodir), 2404 self.hgGetBranchesList(repodir),
2408 bookmarksList) 2405 bookmarksList)
2409 if dlg.exec_() == QDialog.Accepted: 2406 if dlg.exec_() == QDialog.Accepted:
2410 rev, merge, date, user, message = dlg.getParameters() 2407 rev, merge, date, user, message = dlg.getParameters()
2472 while not os.path.isdir(os.path.join(repodir, self.adminDir)): 2469 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
2473 repodir = os.path.dirname(repodir) 2470 repodir = os.path.dirname(repodir)
2474 if os.path.splitdrive(repodir)[1] == os.sep: 2471 if os.path.splitdrive(repodir)[1] == os.sep:
2475 return 2472 return
2476 2473
2474 from .HgServeDialog import HgServeDialog
2477 self.serveDlg = HgServeDialog(self, repodir) 2475 self.serveDlg = HgServeDialog(self, repodir)
2478 self.serveDlg.show() 2476 self.serveDlg.show()
2479 2477
2480 def hgImport(self, name): 2478 def hgImport(self, name):
2481 """ 2479 """
2492 while not os.path.isdir(os.path.join(repodir, self.adminDir)): 2490 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
2493 repodir = os.path.dirname(repodir) 2491 repodir = os.path.dirname(repodir)
2494 if os.path.splitdrive(repodir)[1] == os.sep: 2492 if os.path.splitdrive(repodir)[1] == os.sep:
2495 return 2493 return
2496 2494
2495 from .HgImportDialog import HgImportDialog
2497 dlg = HgImportDialog() 2496 dlg = HgImportDialog()
2498 if dlg.exec_() == QDialog.Accepted: 2497 if dlg.exec_() == QDialog.Accepted:
2499 patchFile, noCommit, message, date, user, stripCount, force = \ 2498 patchFile, noCommit, message, date, user, stripCount, force = \
2500 dlg.getParameters() 2499 dlg.getParameters()
2501 2500
2545 while not os.path.isdir(os.path.join(repodir, self.adminDir)): 2544 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
2546 repodir = os.path.dirname(repodir) 2545 repodir = os.path.dirname(repodir)
2547 if os.path.splitdrive(repodir)[1] == os.sep: 2546 if os.path.splitdrive(repodir)[1] == os.sep:
2548 return 2547 return
2549 2548
2549 from .HgExportDialog import HgExportDialog
2550 dlg = HgExportDialog() 2550 dlg = HgExportDialog()
2551 if dlg.exec_() == QDialog.Accepted: 2551 if dlg.exec_() == QDialog.Accepted:
2552 filePattern, revisions, switchParent, allText, noDates, git = \ 2552 filePattern, revisions, switchParent, allText, noDates, git = \
2553 dlg.getParameters() 2553 dlg.getParameters()
2554 2554
2590 repodir = os.path.dirname(repodir) 2590 repodir = os.path.dirname(repodir)
2591 if os.path.splitdrive(repodir)[1] == os.sep: 2591 if os.path.splitdrive(repodir)[1] == os.sep:
2592 return False 2592 return False
2593 2593
2594 if data is None: 2594 if data is None:
2595 from .HgPhaseDialog import HgPhaseDialog
2595 dlg = HgPhaseDialog() 2596 dlg = HgPhaseDialog()
2596 if dlg.exec_() == QDialog.Accepted: 2597 if dlg.exec_() == QDialog.Accepted:
2597 data = dlg.getData() 2598 data = dlg.getData()
2598 2599
2599 if data: 2600 if data:
2636 while not os.path.isdir(os.path.join(repodir, self.adminDir)): 2637 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
2637 repodir = os.path.dirname(repodir) 2638 repodir = os.path.dirname(repodir)
2638 if os.path.splitdrive(repodir)[1] == os.sep: 2639 if os.path.splitdrive(repodir)[1] == os.sep:
2639 return False 2640 return False
2640 2641
2642 from .HgGraftDialog import HgGraftDialog
2641 res = False 2643 res = False
2642 dlg = HgGraftDialog(self) 2644 dlg = HgGraftDialog(self)
2643 if dlg.exec_() == QDialog.Accepted: 2645 if dlg.exec_() == QDialog.Accepted:
2644 revs, (userData, currentUser, userName), \ 2646 revs, (userData, currentUser, userName), \
2645 (dateData, currentDate, dateStr), log, dryrun = dlg.getData() 2647 (dateData, currentDate, dateStr), log, dryrun = dlg.getData()
2725 2727
2726 def hgAddSubrepository(self): 2728 def hgAddSubrepository(self):
2727 """ 2729 """
2728 Public method to add a sub-repository. 2730 Public method to add a sub-repository.
2729 """ 2731 """
2732 from .HgAddSubrepositoryDialog import HgAddSubrepositoryDialog
2730 ppath = self.__projectHelper.getProject().getProjectPath() 2733 ppath = self.__projectHelper.getProject().getProjectPath()
2731 hgsub = self.getHgSubPath() 2734 hgsub = self.getHgSubPath()
2732 dlg = HgAddSubrepositoryDialog(ppath) 2735 dlg = HgAddSubrepositoryDialog(ppath)
2733 if dlg.exec_() == QDialog.Accepted: 2736 if dlg.exec_() == QDialog.Accepted:
2734 relPath, subrepoType, subrepoUrl = dlg.getData() 2737 relPath, subrepoType, subrepoUrl = dlg.getData()
2807 self.trUtf8("""<p>The sub-repositories file .hgsub could not""" 2810 self.trUtf8("""<p>The sub-repositories file .hgsub could not"""
2808 """ be read.</p><p>Reason: {0}</p>""") 2811 """ be read.</p><p>Reason: {0}</p>""")
2809 .format(str(err))) 2812 .format(str(err)))
2810 return 2813 return
2811 2814
2815 from .HgRemoveSubrepositoriesDialog import HgRemoveSubrepositoriesDialog
2812 dlg = HgRemoveSubrepositoriesDialog(subrepositories) 2816 dlg = HgRemoveSubrepositoriesDialog(subrepositories)
2813 if dlg.exec_() == QDialog.Accepted: 2817 if dlg.exec_() == QDialog.Accepted:
2814 subrepositories, removedSubrepos, deleteSubrepos = dlg.getData() 2818 subrepositories, removedSubrepos, deleteSubrepos = dlg.getData()
2815 contents = "\n".join(subrepositories) + "\n" 2819 contents = "\n".join(subrepositories) + "\n"
2816 try: 2820 try:
2945 @param project reference to the project object 2949 @param project reference to the project object
2946 @param isTranslationsBrowser flag indicating, the helper is requested for the 2950 @param isTranslationsBrowser flag indicating, the helper is requested for the
2947 translations browser (this needs some special treatment) 2951 translations browser (this needs some special treatment)
2948 @return the project browser helper object 2952 @return the project browser helper object
2949 """ 2953 """
2954 from .ProjectBrowserHelper import HgProjectBrowserHelper
2950 return HgProjectBrowserHelper(self, browser, project, isTranslationsBrowser) 2955 return HgProjectBrowserHelper(self, browser, project, isTranslationsBrowser)
2951 2956
2952 def vcsGetProjectHelper(self, project): 2957 def vcsGetProjectHelper(self, project):
2953 """ 2958 """
2954 Public method to instantiate a helper object for the project. 2959 Public method to instantiate a helper object for the project.
2967 repodir = os.path.dirname(repodir) 2972 repodir = os.path.dirname(repodir)
2968 if not repodir or os.path.splitdrive(repodir)[1] == os.sep: 2973 if not repodir or os.path.splitdrive(repodir)[1] == os.sep:
2969 repodir = "" 2974 repodir = ""
2970 break 2975 break
2971 if repodir: 2976 if repodir:
2977 from .HgClient import HgClient
2972 client = HgClient(repodir, "utf-8", self) 2978 client = HgClient(repodir, "utf-8", self)
2973 ok, err = client.startServer() 2979 ok, err = client.startServer()
2974 if ok: 2980 if ok:
2975 self.__client = client 2981 self.__client = client
2976 else: 2982 else:
2991 2997
2992 @param project reference to the project object (Project) 2998 @param project reference to the project object (Project)
2993 @param interval check interval for the monitor thread in seconds (integer) 2999 @param interval check interval for the monitor thread in seconds (integer)
2994 @return reference to the monitor thread (QThread) 3000 @return reference to the monitor thread (QThread)
2995 """ 3001 """
3002 from .HgStatusMonitorThread import HgStatusMonitorThread
2996 return HgStatusMonitorThread(interval, project, self) 3003 return HgStatusMonitorThread(interval, project, self)

eric ide

mercurial