Subject: [WIP PATCH 0/5] support --exclude for diff/log commands

From: Nguyễn Thái Ngọc Duy <[email-masked]>
Date: Thu, 10 Mar 2011 10:13:34 +0700

This is not really ready for review or use, but I'd like to have
feedback if any, where this series is heading because it requires some
code refactor in diff/rev machinery. It does not feel absolutely right
to me.

On the other hand, if we go with ':' as a mark of special pathspecs, then

 - ":/" mark pathspecs relative to worktree root
 - ":!" may mark negative pathspecs

Less changes in diff/rev this way.

Nguyễn Thái Ngọc Duy (5):
  tree-walk: support negative pathspec
  match_pathspec_depth: support negative pathspec

match_pathspec_depth needs work. tree_entry_interesting() can use some
optimization, but leave it for now.

  revision.c: get rid of struct rev_info.prune_data
  diff: refactor init/release API

These two facilitate post pathspec manipulation to transform --exclude
to pathspecs with to_exclude = 1.

  diff: support --exclude

 Documentation/technical/api-diff.txt |    2 +-
 builtin/add.c                        |    3 +-
 builtin/blame.c                      |   22 +++++----------
 builtin/diff.c                       |    6 ++--
 builtin/fast-export.c                |    2 +-
 builtin/merge.c                      |    2 +-
 builtin/reset.c                      |    4 +-
 cache.h                              |    1 +
 diff-lib.c                           |    6 ++--
 diff-no-index.c                      |    6 ++--
 diff.c                               |   49 ++++++++++++++++++++++++++++++++-
 diff.h                               |    6 ++--
 dir.c                                |    5 +++
 merge-recursive.c                    |    2 +-
 notes-merge.c                        |    8 +++---
 patch-ids.c                          |    2 +-
 revision.c                           |   22 ++++++++-------
 revision.h                           |    1 -
 tree-diff.c                          |   21 +++------------
 tree-walk.c                          |   37 +++++++++++++++++++------
 wt-status.c                          |    6 +---
 21 files changed, 130 insertions(+), 83 deletions(-)

-- 
1.7.3.1.256.g2539c.dirty