Mercurial > hg-stable
view contrib/tcsh_completion_build.sh @ 16789:c17ce7cd5090 stable
match: make 'match.files()' return list object always
'exact' match objects are sometimes created with a non-list 'pattern'
argument:
- using 'set' in queue.refresh():hgext/mq.py
match = scmutil.matchfiles(repo, set(c[0] + c[1] + c[2] + inclsubs))
- using 'dict' in revert():mercurial/cmdutil.py (names = {})
m = scmutil.matchfiles(repo, names)
'exact' match objects return specified 'pattern' to callers of
'match.files()' as it is, so it is a non-list object.
but almost all implementations expect 'match.files()' to return a list
object, so this may causes problems: e.g. exception for "+" with
another list object.
this patch ensures that '_files' of 'exact' match objects is a list
object.
for non 'exact' match objects, parsing specified 'pattern' already
ensures that it it a list one.
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Wed, 23 May 2012 00:25:29 +0900 |
parents | 2616325766e3 |
children |
line wrap: on
line source
#!/bin/sh # # tcsh_completion_build.sh - script to generate tcsh completion # # # Copyright (C) 2005 TK Soh. # # This is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free # Software Foundation; either version 2 of the License, or (at your # option) any later version. # # # Description # ----------- # This script generates a tcsh source file to support completion # of Mercurial commands and options. # # Instruction: # ----------- # Run this script to generate the tcsh source file, and source # the file to add command completion support for Mercurial. # # tcsh% tcsh_completion.sh FILE # tcsh% source FILE # # If FILE is not specified, tcsh_completion will be generated. # # Bugs: # ---- # 1. command specific options are not supported # 2. hg commands must be specified immediately after 'hg'. # tcsh_file=${1-tcsh_completion} hg_commands=`hg --debug help | \ sed -e '1,/^list of commands:/d' \ -e '/^enabled extensions:/,$d' \ -e '/^additional help topics:/,$d' \ -e '/^ [^ ]/!d; s/[,:]//g;' | \ xargs -n5 | \ sed -e '$!s/$/ \\\\/g; 2,$s/^ */ /g'` hg_global_options=`hg -v help | \ sed -e '1,/global/d;/^ *-/!d; s/ [^- ].*//' | \ sed -e 's/ *$//; $!s/$/ \\\\/g; 2,$s/^ */ /g'` hg_version=`hg version | sed -e '1q'` script_name=`basename $0` cat > $tcsh_file <<END # # tcsh completion for Mercurial # # This file has been auto-generated by $script_name for # $hg_version # # Copyright (C) 2005 TK Soh. # # This is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free # Software Foundation; either version 2 of the License, or (at your # option) any later version. # complete hg \\ 'n/--cwd/d/' 'n/-R/d/' 'n/--repository/d/' \\ 'C/-/($hg_global_options)/' \\ 'p/1/($hg_commands)/' END