Plugins/VcsPlugins/vcsMercurial/hg.py

changeset 1274
442c748018c5
parent 1267
5eddb59304c7
child 1282
c5b7b444942d
equal deleted inserted replaced
1269:7b4d9f1d7c6c 1274:442c748018c5
33 from .HgLogDialog import HgLogDialog 33 from .HgLogDialog import HgLogDialog
34 from .HgLogBrowserDialog import HgLogBrowserDialog 34 from .HgLogBrowserDialog import HgLogBrowserDialog
35 from .HgDiffDialog import HgDiffDialog 35 from .HgDiffDialog import HgDiffDialog
36 from .HgRevisionsSelectionDialog import HgRevisionsSelectionDialog 36 from .HgRevisionsSelectionDialog import HgRevisionsSelectionDialog
37 from .HgRevisionSelectionDialog import HgRevisionSelectionDialog 37 from .HgRevisionSelectionDialog import HgRevisionSelectionDialog
38 from .HgMultiRevisionSelectionDialog import HgMultiRevisionSelectionDialog
38 from .HgMergeDialog import HgMergeDialog 39 from .HgMergeDialog import HgMergeDialog
39 from .HgStatusMonitorThread import HgStatusMonitorThread 40 from .HgStatusMonitorThread import HgStatusMonitorThread
40 from .HgStatusDialog import HgStatusDialog 41 from .HgStatusDialog import HgStatusDialog
41 from .HgAnnotateDialog import HgAnnotateDialog 42 from .HgAnnotateDialog import HgAnnotateDialog
42 from .HgTagDialog import HgTagDialog 43 from .HgTagDialog import HgTagDialog
717 Public method used to view the log of a file/directory from the 718 Public method used to view the log of a file/directory from the
718 Mercurial repository. 719 Mercurial repository.
719 720
720 @param name file/directory name to show the log of (string) 721 @param name file/directory name to show the log of (string)
721 """ 722 """
722 noEntries, ok = QInputDialog.getInteger( 723 dname, fname = self.splitPath(name)
723 None, 724
724 self.trUtf8("Mercurial Log"), 725 # find the root of the repo
725 self.trUtf8("Select number of entries to show."), 726 repodir = dname
726 self.getPlugin().getPreferences("LogLimit"), 1, 999999, 1) 727 while not os.path.isdir(os.path.join(repodir, self.adminDir)):
727 if ok: 728 repodir = os.path.dirname(repodir)
729 if repodir == os.sep:
730 return
731
732 if self.isExtensionActive("bookmarks"):
733 bookmarksList = \
734 self.getExtensionObject("bookmarks").hgGetBookmarksList(repodir)
735 else:
736 bookmarksList = None
737
738 dlg = HgMultiRevisionSelectionDialog(
739 self.hgGetTagsList(repodir),
740 self.hgGetBranchesList(repodir),
741 bookmarksList,
742 emptyRevsOk=True,
743 showLimit=True,
744 limitDefault=self.getPlugin().getPreferences("LogLimit"))
745 if dlg.exec_() == QDialog.Accepted:
746 revs, noEntries = dlg.getRevisions()
728 self.log = HgLogDialog(self) 747 self.log = HgLogDialog(self)
729 self.log.show() 748 self.log.show()
730 self.log.start(name, noEntries) 749 self.log.start(name, noEntries=noEntries, revisions=revs)
731 750
732 def vcsDiff(self, name): 751 def vcsDiff(self, name):
733 """ 752 """
734 Public method used to view the difference of a file/directory to the 753 Public method used to view the difference of a file/directory to the
735 Mercurial repository. 754 Mercurial repository.
2000 bookmarksList = None 2019 bookmarksList = None
2001 dlg = HgBundleDialog(self.hgGetTagsList(repodir), 2020 dlg = HgBundleDialog(self.hgGetTagsList(repodir),
2002 self.hgGetBranchesList(repodir), 2021 self.hgGetBranchesList(repodir),
2003 bookmarksList) 2022 bookmarksList)
2004 if dlg.exec_() == QDialog.Accepted: 2023 if dlg.exec_() == QDialog.Accepted:
2005 rev, compression, all = dlg.getParameters() 2024 revs, baseRevs, compression, all = dlg.getParameters()
2006 2025
2007 fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( 2026 fname, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
2008 None, 2027 None,
2009 self.trUtf8("Create changegroup"), 2028 self.trUtf8("Create changegroup"),
2010 repodir, 2029 repodir,
2033 2052
2034 args = [] 2053 args = []
2035 args.append('bundle') 2054 args.append('bundle')
2036 if all: 2055 if all:
2037 args.append("--all") 2056 args.append("--all")
2038 if rev: 2057 for rev in revs:
2039 args.append("--rev") 2058 args.append("--rev")
2040 args.append(rev) 2059 args.append(rev)
2060 for baseRev in baseRevs:
2061 args.append("--base")
2062 args.append(baseRev)
2041 if compression: 2063 if compression:
2042 args.append("--type") 2064 args.append("--type")
2043 args.append(compression) 2065 args.append(compression)
2044 args.append(fname) 2066 args.append(fname)
2045 2067
2167 repodir = os.path.dirname(repodir) 2189 repodir = os.path.dirname(repodir)
2168 if repodir == os.sep: 2190 if repodir == os.sep:
2169 return 2191 return
2170 2192
2171 rev = "" 2193 rev = ""
2172 if subcommand in ("good", "bad"): 2194 if subcommand in ("good", "bad", "skip"):
2173 if self.isExtensionActive("bookmarks"): 2195 if self.isExtensionActive("bookmarks"):
2174 bookmarksList = \ 2196 bookmarksList = \
2175 self.getExtensionObject("bookmarks").hgGetBookmarksList(repodir) 2197 self.getExtensionObject("bookmarks").hgGetBookmarksList(repodir)
2176 else: 2198 else:
2177 bookmarksList = None 2199 bookmarksList = None

eric ide

mercurial