# HG changeset patch
# User Sune Foldager <[email protected]>
# Date 1253033536 -7200
# Node ID b212f9190513ac55d49310893411f1ae48f009f3
# Parent 3fc4c85abd0e057942518dc321892b538b0ad5dd
history: enable file patterns
Strings entered in the 'File Patterns' field can be prefixed with one of the
mercurial match types (glob, re, path, relglob, relpath, relre). If not
prefixed,
the default will either glob or path depending on the presense of one or more of
the characters '[{*?'.
File history mode is enabled when there is only one pattern item, it is of type
path or defaults to path and it is not an existing directory.
diff --git a/tortoisehg/hgtk/history.py b/tortoisehg/hgtk/history.py
--- a/tortoisehg/hgtk/history.py
+++ b/tortoisehg/hgtk/history.py
@@ -12,7 +12,7 @@
import pango
import StringIO
-from mercurial import ui, hg, cmdutil, commands, extensions, util
+from mercurial import ui, hg, cmdutil, commands, extensions, util, match
from tortoisehg.util.i18n import _
from tortoisehg.util import hglib, paths
@@ -428,11 +428,14 @@
ftitle(_('%s branch') % branch)
elif self.filter == 'custom':
ftitle(_('custom filter'))
- if len(pats) == 1 and not os.path.isdir(pats[0]):
- opts['filehist'] = pats[0]
- self.graphview.refresh(self.graphcol, pats, opts)
- else:
- self.graphview.refresh(False, pats, opts)
+ npats = hglib.normpats(pats)
+ if len(npats) == 1:
+ kind, name = match._patsplit(npats[0], None)
+ if kind == 'path' and not os.path.isdir(name):
+ opts['filehist'] = name
+ self.graphview.refresh(self.graphcol, [name], opts)
+ if not opts.get('filehist'):
+ self.graphview.refresh(False, npats, opts)
elif self.filter == 'all':
ftitle(None)
self.graphview.refresh(self.graphcol, None, opts)
diff --git a/tortoisehg/hgtk/logview/revgraph.py
b/tortoisehg/hgtk/logview/revgraph.py
--- a/tortoisehg/hgtk/logview/revgraph.py
+++ b/tortoisehg/hgtk/logview/revgraph.py
@@ -418,8 +418,6 @@
stack = []
get = util.cachefunc(lambda r: repo[r])
- if pats != None:
- pats = ['path:'+p for p in pats]
changeiter, matchfn = cmdutil.walkchangerevs(repo.ui, repo, pats, get,
opts)
for st, rev, fns in changeiter:
if st == 'iter':
diff --git a/tortoisehg/util/hglib.py b/tortoisehg/util/hglib.py
--- a/tortoisehg/util/hglib.py
+++ b/tortoisehg/util/hglib.py
@@ -10,7 +10,7 @@
import traceback
import shlib
import time
-from mercurial import hg, ui, util, extensions, commands, hook
+from mercurial import hg, ui, util, extensions, commands, hook, match
from i18n import _
import paths
@@ -136,8 +136,22 @@
# May already be canonical
canonpats.append(f)
return canonpats
-
-
+
+def normpats(pats):
+ 'Normalize file patterns'
+ normpats = []
+ for pat in pats:
+ kind, p = match._patsplit(pat, None)
+ if kind:
+ normpats.append(pat)
+ else:
+ if '[' in p or '{' in p or '*' in p or '?' in p:
+ normpats.append('glob:' + p)
+ else:
+ normpats.append('path:' + p)
+ return normpats
+
+
def mergetools(ui, values=None):
'returns the configured merge tools and the internal ones'
if values == None:
------------------------------------------------------------------------------
Come build with us! The BlackBerry® Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9-12, 2009. Register now!
http://p.sf.net/sfu/devconf
_______________________________________________
Tortoisehg-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop