diff --git a/smartlog.py b/smartlog.py index e603e58d3c..b4a14233d2 100644 --- a/smartlog.py +++ b/smartlog.py @@ -246,16 +246,16 @@ def _masterrevset(ui, repo, masterstring): if util.safehasattr(repo, 'names') and 'remotebookmarks' in repo.names: names.update(set(repo.names['remotebookmarks'].listnames(repo))) - for name in _reposnames(): + for name in _reposnames(ui): if name in names: return name return 'tip' -def _reposnames(): +def _reposnames(ui): # '' is local repo. This also defines an order precedence for master. - repos = ['', 'remote/', 'default/'] - names = ['@', 'master', 'trunk', 'stable'] + repos = ui.configlist('smartlog', 'repos', ['', 'remote/', 'default/']) + names = ui.configlist('smartlog', 'names', ['@', 'master', 'stable']) for repo in repos: for name in names: @@ -311,7 +311,7 @@ def smartlogrevset(repo, subset, x): if util.safehasattr(repo, 'names') and 'remotebookmarks' in repo.names: ns = repo.names['remotebookmarks'] remotebooks = set(ns.listnames(repo)) - for name in _reposnames(): + for name in _reposnames(repo.ui): if name in remotebooks: heads.add(rev(ns.namemap(repo, name)[0])) diff --git a/tests/test-smartlog-remotenames.t b/tests/test-smartlog-remotenames.t index dd1d32086a..ba4176c960 100644 --- a/tests/test-smartlog-remotenames.t +++ b/tests/test-smartlog-remotenames.t @@ -16,7 +16,7 @@ $ echo x >> x $ hg commit -qAm x2 -Resetting past a remote bookmark should not delete the remote bookmark +Non-bookmarked public heads should not be visible in smartlog $ cd .. $ hg clone repo client @@ -26,23 +26,61 @@ Resetting past a remote bookmark should not delete the remote bookmark $ hg book mybook -r 0 $ hg up 0 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ hg smartlog -T '{node|short} {bookmarks} {remotebookmarks}' - o a89d614e2364 default/master + $ hg smartlog -T '{rev} {bookmarks} {remotebookmarks}' + o 1 default/master | - @ b292c1e3311f mybook + @ 0 mybook +Old head (rev 1) should no longer be visible + $ echo z >> x $ hg commit -qAm x3 - $ hg push -f --to master - pushing rev d14b8058ba3a to destination $TESTTMP/repo bookmark master - searching for changes - adding changesets - adding manifests - adding file changes - added 1 changesets with 1 changes to 1 files (+1 heads) - updating bookmark master - $ hg smartlog -T '{node|short} {bookmarks} {remotebookmarks}' - @ d14b8058ba3a default/master + $ hg push -f -q --to master + $ hg smartlog -T '{rev} {bookmarks} {remotebookmarks}' + @ 2 default/master | - o b292c1e3311f mybook + o 0 mybook + + +Test configuration of "interesting" bookmarks + + $ hg up -q .^ + $ echo x >> x + $ hg commit -qAm x4 + $ hg push -f -q --to project/bookmark --force + $ hg smartlog -T '{rev} {bookmarks} {remotebookmarks}' + o 2 default/master + | + | @ 3 default/project/bookmark + |/ + o 0 mybook + + + $ hg up .^ + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg smartlog -T '{rev} {bookmarks} {remotebookmarks}' + o 2 default/master + | + @ 0 mybook + + $ cat >> $HGRCPATH << EOF + > [smartlog] + > repos=default/ + > names=project/bookmark + > EOF + $ hg smartlog -T '{rev} {bookmarks} {remotebookmarks}' + o 3 default/project/bookmark + | + @ 0 mybook + + $ cat >> $HGRCPATH << EOF + > [smartlog] + > names=master project/bookmark + > EOF + $ hg smartlog -T '{rev} {bookmarks} {remotebookmarks}' + o 2 default/master + | + | o 3 default/project/bookmark + |/ + @ 0 mybook