Changeset 73e6d5bf66df…
Parent a7252818d702…
by
Changes to 2 files · Browse files at 73e6d5bf66df Showing diff from parent a7252818d702 Diff from another changeset...
@@ -876,6 +876,9 @@ self.add_bookmark))
m.append(create_menu(_('Rename Bookmark...'),
self.rename_bookmark))
+ if self.repo.ui.configbool('bookmarks', 'track.current'):
+ m.append(create_menu(_('Set Current Bookmark...'),
+ self.current_bookmark))
return m.create_menu()
def mq_context_menu(self):
@@ -1214,6 +1217,18 @@ else:
if newmarkers != oldmarkers:
self.refresh_model()
+
+ def refresh_on_current_marker_change(self, oldlen, oldmarkers,
+ oldcurrent, newmarkers,
+ newcurrent):
+ self.repo.invalidate()
+ self.changeview.clear_cache()
+ if len(self.repo) != oldlen:
+ self.reload_log()
+ else:
+ if newmarkers != oldmarkers or \
+ oldcurrent != newcurrent:
+ self.refresh_model()
def apply_clicked(self, button):
combo = self.ppullcombo
@@ -1906,6 +1921,27 @@ bmark, rev)
dialog.connect('destroy', refresh)
self.show_dialog(dialog)
+
+ def current_bookmark(self, menuitem):
+ # save current bookmark info for detecting current bookmark changed
+ bookmarks = extensions.find('bookmarks')
+ # Note that the dialog shouldn't change the repo len, or # of bookmarks,
+ # etc, but check in case they've been modified by something else...
+ oldbookmarks = hglib.get_repo_bookmarks(self.repo)
+ oldlen = len(self.repo)
+ oldcurrent = bookmarks.current(self.repo)
+ rev = str(self.currevid)
+ bmark = self.get_rev_tag(rev, include=oldbookmarks)
+
+ def refresh(*args):
+ self.refresh_on_current_marker_change(oldlen, oldbookmarks, oldcurrent,
+ hglib.get_repo_bookmarks(self.repo),
+ bookmarks.current(self.repo))
+
+ dialog = bookmark.BookmarkDialog(self.repo, bookmark.TYPE_CURRENT,
+ bmark, rev)
+ dialog.connect('destroy', refresh)
+ self.show_dialog(dialog)
def bisect_reset(self, menuitem):
commands.bisect(ui=self.ui,
|
Loading...