Re: Finding all commits which modify a file
- From
- Santi Béjar <santi@agolina.net>
- Date
- Jan 24, 2012, 18:10 UTC
- Message-ID
- <CA+gHt1BjqJpUke8JKjUmFyg3Zj5FmASd77LR-7P+6RrNLddD1A@mail.gmail.com>
- In-Reply-To
- <52932.38.96.167.131.1327422884.squirrel@mail.lo-cal.org>
[ Do not cut the CC]
On Tue, Jan 24, 2012 at 5:34 PM, Neal Groothuis <ngroot@lo-cal.org> wrote:
Show 28 quoted lines
>> On Mon, Jan 23, 2012 at 5:14 PM, Neal Groothuis <ngroot@lo-cal.org> wrote: >>>> On 1/20/2012 3:35 PM, Neal Groothuis wrote: >>>>> I'm trying to find /all/ commits that change a file in the >>>>> repository...and its proving to be trickier than I thought. :-) >>> >>> On 1/21/2012 6:16 PM, Neal Kreitzinger wrote: >>>> Does git-log --all help? >>> >>> I don't see how it would. The commits are all reachable from HEAD, >>> which >>> would seem to be the problem that --all would correct. >>> >>> What I'm trying to do is find the commits in which a file differs from >>> that same file in any of its parents. >> >> If you add parent rewriting (--parent, --graph or see it in gitk, with >> --full-history) you'll get your B2 commit as it adds commits to have a >> meaningful history. But I don't think this is what you are asking for. > > Correct. If I add parent rewriting, I get all merges, even those in which > the file is not changed from either parent. > > Based on what's in the man page for git log about the history > simplification algorithm, it seems that B2 should be included in the > output when I do a git log --full-history --simplify-history foo.txt, as > per the steps I noted in the original post. Is my understanding of the > algorithm faulty? >
Following your steps in the first post, B2 is excluded in the --simplify-merge phase because it is (originally) TREESAME, even if it is not in the rewritten history...
HTH, Santi