Mercurial > hg
diff hgext/inotify/server.py @ 8322:3c6c21eb3416
inotify: inotify.server.walkrepodirs() simplify walking
Do not 'yield tuple, boolean' to filter later on the boolean.
Test the boolean first, and yield tuple only if needed.
author | Nicolas Dumazet <nicdumz.commits@gmail.com> |
---|---|
date | Mon, 04 May 2009 17:11:49 +0900 |
parents | ec985dcfd7da |
children | 589a82fb02a2 |
line wrap: on
line diff
--- a/hgext/inotify/server.py Mon May 04 17:06:59 2009 +0900 +++ b/hgext/inotify/server.py Mon May 04 17:11:49 2009 +0900 @@ -32,6 +32,7 @@ '''Iterate over all subdirectories of this repo. Exclude the .hg directory, any nested repos, and ignored dirs.''' rootslash = repo.root + os.sep + def walkit(dirname, top): fullpath = rootslash + dirname hginside = False @@ -45,15 +46,15 @@ d = join(dirname, name) if repo.dirstate._ignore(d): continue - for subdir, hginsub in walkit(d, False): - if not hginsub: - yield subdir, False + for subdir in walkit(d, False): + yield subdir except OSError, err: if err.errno not in walk_ignored_errors: raise - yield fullpath, hginside - for dirname, hginside in walkit('', True): - yield dirname + if top or not hginside: + yield fullpath + + return walkit('', True) def walk(repo, root): '''Like os.walk, but only yields regular files.'''