X-Git-Url: https://git.distorted.org.uk/~mdw/stgit/blobdiff_plain/95742cfc06832ec30191567c5b83247a28f6ec64..4d4c0e3a5cf0930619317b473259177bc5b79f41:/stgit/git.py diff --git a/stgit/git.py b/stgit/git.py index 5abe902..c8339e0 100644 --- a/stgit/git.py +++ b/stgit/git.py @@ -155,7 +155,7 @@ def __run(cmd, args=None): def __check_base_dir(): return os.path.isdir(base_dir) -def __tree_status(files = [], tree_id = 'HEAD', unknown = False): +def __tree_status(files = [], tree_id = 'HEAD', unknown = False, noexclude = True): """Returns a list of pairs - [status, filename] """ os.system('git-update-cache --refresh > /dev/null') @@ -165,13 +165,16 @@ def __tree_status(files = [], tree_id = 'HEAD', unknown = False): # unknown files if unknown: exclude_file = os.path.join(base_dir, 'exclude') + base_exclude = [ '--exclude=*.[ao]', '--exclude=.*' '--exclude=TAGS', + '--exclude=tags', '--exclude=*~', '--exclude=#*', + '--exclude-per-directory=.gitignore' ] extra_exclude = [] if os.path.exists(exclude_file): extra_exclude.append('--exclude-from=%s' % exclude_file) - lines = _output_lines(['git-ls-files', '--others', - '--exclude=*.[ao]', '--exclude=.*' - '--exclude=TAGS', '--exclude=tags', '--exclude=*~', - '--exclude=#*'] + extra_exclude) + if noexclude: + extra_exclude = base_exclude = [] + lines = _output_lines(['git-ls-files', '--others' ] + base_exclude + + extra_exclude) cache_files += [('?', line.strip()) for line in lines] # conflicted files @@ -343,10 +346,10 @@ def merge(base, head1, head2): raise GitException, 'git-merge-cache failed (possible conflicts)' def status(files = [], modified = False, new = False, deleted = False, - conflict = False, unknown = False): + conflict = False, unknown = False, noexclude = False): """Show the tree status """ - cache_files = __tree_status(files, unknown = True) + cache_files = __tree_status(files, unknown = True, noexclude = noexclude) all = not (modified or new or deleted or conflict or unknown) if not all: