diff --git a/scripts/combo-layer b/scripts/combo-layer index 92c5cbb813..f028098cbb 100755 --- a/scripts/combo-layer +++ b/scripts/combo-layer @@ -662,7 +662,14 @@ def action_update(conf, args): patch_cmd_range = "%s..%s" % (repo['last_revision'], top_revision) rev_cmd_range = patch_cmd_range - file_filter = repo.get('file_filter',"") + file_filter = repo.get('file_filter',".") + + # Filter out unwanted files + exclude = repo.get('file_exclude', '') + if exclude: + for path in exclude.split(): + p = "%s/%s" % (dest_dir, path) if dest_dir != '.' else path + file_filter += " ':!%s'" % p patch_cmd = "git format-patch -N %s --output-directory %s %s -- %s" % \ (prefix,repo_patch_dir, patch_cmd_range, file_filter) @@ -681,38 +688,6 @@ def action_update(conf, args): runcmd("%s %s %s %s" % (repo['hook'], patch, revlist[count], name)) count=count-1 - # Step 3a: Filter out unwanted files and patches. - exclude = repo.get('file_exclude', '') - if exclude: - filter = ['filterdiff', '-p1'] - for path in exclude.split(): - filter.append('-x') - filter.append('%s/%s' % (dest_dir, path) if dest_dir != '.' else path) - for patch in patchlist[:]: - filtered = patch + '.tmp' - with open(filtered, 'w') as f: - runcmd(filter + [patch], out=f) - # Now check for empty patches. - if runcmd(['filterdiff', '--list', filtered]): - # Possibly modified. - os.unlink(patch) - os.rename(filtered, patch) - else: - # Empty, ignore it. Must also remove from revlist. - with open(patch, 'r') as f: - fromline = f.readline() - if not fromline: - # Patch must have been empty to start with. No need - # to remove it. - continue - m = re.match(r'''^From ([0-9a-fA-F]+) .*\n''', fromline) - rev = m.group(1) - logger.debug('skipping empty patch %s = %s' % (patch, rev)) - os.unlink(patch) - os.unlink(filtered) - patchlist.remove(patch) - revlist.remove(rev) - # Step 4: write patch list and revision list to file, for user to edit later patchlist_file = os.path.join(os.getcwd(), patch_dir, "patchlist-%s" % name) repo['patchlist'] = patchlist_file