--- a/Plugins/VcsPlugins/vcsMercurial/hg.py Mon Nov 14 19:24:11 2016 +0100 +++ b/Plugins/VcsPlugins/vcsMercurial/hg.py Mon Nov 14 19:58:22 2016 +0100 @@ -3588,11 +3588,13 @@ return self.bookmarksList[:] - def hgBookmarkDefine(self, name): + def hgBookmarkDefine(self, name, revision=None, bookmark=None): """ Public method to define a bookmark. @param name file/directory name (string) + @param revision revision to set bookmark for (string) + @param bookmark name of the bookmark (string) """ # find the root of the repo repodir = self.splitPath(name)[0] @@ -3601,18 +3603,25 @@ if os.path.splitdrive(repodir)[1] == os.sep: return - from .HgBookmarkDialog import HgBookmarkDialog - dlg = HgBookmarkDialog(HgBookmarkDialog.DEFINE_MODE, - self.hgGetTagsList(repodir), - self.hgGetBranchesList(repodir), - self.hgGetBookmarksList(repodir)) - if dlg.exec_() == QDialog.Accepted: - rev, bookmark = dlg.getData() - + if bool(revision) and bool(bookmark): + ok = True + else: + from .HgBookmarkDialog import HgBookmarkDialog + dlg = HgBookmarkDialog(HgBookmarkDialog.DEFINE_MODE, + self.hgGetTagsList(repodir), + self.hgGetBranchesList(repodir), + self.hgGetBookmarksList(repodir)) + if dlg.exec_() == QDialog.Accepted: + revision, bookmark = dlg.getData() + ok = True + else: + ok = False + + if ok: args = self.initCommand("bookmarks") - if rev: + if revision: args.append("--rev") - args.append(rev) + args.append(revision) args.append(bookmark) dia = HgDialog(self.tr('Mercurial Bookmark'), self) @@ -3677,11 +3686,13 @@ if res: dia.exec_() - def hgBookmarkMove(self, name): + def hgBookmarkMove(self, name, revision=None, bookmark=None): """ Public method to move a bookmark. @param name file/directory name (string) + @param revision revision to set bookmark for (string) + @param bookmark name of the bookmark (string) """ # find the root of the repo repodir = self.splitPath(name)[0] @@ -3690,19 +3701,26 @@ if os.path.splitdrive(repodir)[1] == os.sep: return - from .HgBookmarkDialog import HgBookmarkDialog - dlg = HgBookmarkDialog(HgBookmarkDialog.MOVE_MODE, - self.hgGetTagsList(repodir), - self.hgGetBranchesList(repodir), - self.hgGetBookmarksList(repodir)) - if dlg.exec_() == QDialog.Accepted: - rev, bookmark = dlg.getData() - + if bool(revision) and bool(bookmark): + ok = True + else: + from .HgBookmarkDialog import HgBookmarkDialog + dlg = HgBookmarkDialog(HgBookmarkDialog.MOVE_MODE, + self.hgGetTagsList(repodir), + self.hgGetBranchesList(repodir), + self.hgGetBookmarksList(repodir)) + if dlg.exec_() == QDialog.Accepted: + revision, bookmark = dlg.getData() + ok = True + else: + ok = False + + if ok: args = self.initCommand("bookmarks") args.append("--force") - if rev: + if revision: args.append("--rev") - args.append(rev) + args.append(revision) args.append(bookmark) dia = HgDialog(self.tr('Move Mercurial Bookmark'), self)