On Wed, May 20, 2015 at 9:18 AM, Karthik Nayak <karthik.188@xxxxxxxxx> wrote: > add a ref-filter API to provide functions to filter refs for listing. > This will act as a common library for commands like 'tag -l', > 'branch -l' and 'for-each-ref'. ref-filter will enable each of these > commands to benefit from the features of the others. > > Mentored-by: Christian Couder <christian.couder@xxxxxxxxx> > Mentored-by: Matthieu Moy <matthieu.moy@xxxxxxxxxxxxxxx> > Signed-off-by: Karthik Nayak <karthik.188@xxxxxxxxx> > --- > Makefile | 1 + > ref-filter.c | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > ref-filter.h | 47 ++++++++++++++++++++++++++++++++++++++ > 3 files changed, 121 insertions(+) > create mode 100644 ref-filter.c > create mode 100644 ref-filter.h A shortcoming of this approach is that it's not blame-friendly. Although those of us following this patch series know that much of the code in this patch was copied from for-each-ref.c, git-blame will not recognize this unless invoked in the very expensive "git blame -C -C -C" fashion (if I understand correctly). The most blame-friendly way to perform this re-organization is to have the code relocation (line removals and line additions) occur in one patch. There are multiple ways you could arrange to do so. One would be to first have a patch which introduces just a skeleton of the intended API, with do-nothing function implementations. A subsequent patch would then relocate the code from for-each-ref.c to ref-filter.c, and update for-each-ref.c to call into the new (now fleshed-out) API. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html