From be24d874c515e1515d4a0d91422460b72e451576 Mon Sep 17 00:00:00 2001 From: Catalin Marinas Date: Tue, 13 Sep 2005 10:28:38 +0100 Subject: [PATCH] Use .git/info/exclude instead of .git/exclude The stg status command should follow the latest GIT API. Signed-off-by: Catalin Marinas --- stgit/git.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/stgit/git.py b/stgit/git.py index 40bcd78..fd64ca5 100644 --- a/stgit/git.py +++ b/stgit/git.py @@ -155,7 +155,8 @@ def __run(cmd, args=None): def __check_base_dir(): return os.path.isdir(base_dir) -def __tree_status(files = [], tree_id = 'HEAD', unknown = False, noexclude = True): +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') @@ -164,16 +165,19 @@ def __tree_status(files = [], tree_id = 'HEAD', unknown = False, noexclude = Tru # 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 = [] + exclude_file = os.path.join(base_dir, 'info', 'exclude') + base_exclude = ['--exclude=%s' % s for s in + ['*.[ao]', '*.pyc', '.*', '*~', '#*', 'TAGS', 'tags']] + base_exclude.append('--exclude-per-directory=.gitignore') + if os.path.exists(exclude_file): - extra_exclude.append('--exclude-from=%s' % exclude_file) + extra_exclude = '--exclude-from=%s' % exclude_file + else: + extra_exclude = [] if noexclude: extra_exclude = base_exclude = [] - lines = _output_lines(['git-ls-files', '--others' ] + base_exclude + + lines = _output_lines(['git-ls-files', '--others'] + base_exclude + extra_exclude) cache_files += [('?', line.strip()) for line in lines] -- 2.11.0