From: Junio C Hamano Date: Thu, 10 Mar 2011 06:20:43 GMT Subject: Re: [PATCH 3/5] revision.c: get rid of struct rev_info.prune_data Message-ID: <7vhbbb7ays.fsf@alter.siamese.dyndns.org> In-Reply-To: <1299726819-5576-4-git-send-email-pclouds@gmail.com> Nguyễn Thái Ngọc Duy writes: > There are three struct pathspec(s) in struct rev_info: > > - prune_data > - pruning.pathspec > - diffopt.pathspec > > In some places, this pathspec is used, in other places another > ... but i'm > not sure why diffopt can't be used in place of pruning. A command in the "log" family uses revision traversal and uses one pathspec (pruning.pathspec) to cull side branches and skip irrelevant commits, and another pathspec (diffopt.pathspec) to specify how the found commit is shown. Off the top of my head, currently the only case the pathspec of these diff options differ is when --full-diff is used, but they are independent concepts. I would suspect this would matter even more once somebody wants to redo the --follow hack to actually follow different renamed-from path per merged branches, but I haven't thought through the issues.