Re: [RFC PATCH v2 1/4] Prevent diff machinery from examining assume-unchanged entries on worktree
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Aug 10, 2009, 16:20 UTC
- Message-ID
- <alpine.DEB.1.00.0908101800480.8324@intel-tinevez-2-302>
- In-Reply-To
- <1249917562-5931-2-git-send-email-pclouds@gmail.com>
Hi,
On Mon, 10 Aug 2009, Nguyễn Thái Ngọc Duy wrote:
Show 21 quoted lines
> diff --git a/diff-lib.c b/diff-lib.c
> index b7813af..f5787f6 100644
> --- a/diff-lib.c
> +++ b/diff-lib.c
> @@ -337,6 +337,8 @@ static void do_oneway_diff(struct unpack_trees_options *o,
> struct rev_info *revs = o->unpack_data;
> int match_missing, cached;
>
> + /* if the entry is not checked out, don't examine work tree */
> + cached = o->index_only || (idx && (idx->ce_flags & CE_VALID));
> /*
> * Backward compatibility wart - "diff-index -m" does
> * not mean "do not ignore merges", but "match_missing".
> @@ -344,7 +346,6 @@ static void do_oneway_diff(struct unpack_trees_options *o,
> * But with the revision flag parsing, that's found in
> * "!revs->ignore_merges".
> */
> - cached = o->index_only;
> match_missing = !revs->ignore_merges;
>
> if (cached && idx && ce_stage(idx)) {Out of curiosity: why did that line have to move up?
Ciao, Dscho
Show 26 quoted lines
> diff --git a/t/t4039-diff-assume-unchanged.sh b/t/t4039-diff-assume-unchanged.sh > new file mode 100755 > index 0000000..d0e46a7 > --- /dev/null > +++ b/t/t4039-diff-assume-unchanged.sh > @@ -0,0 +1,31 @@ > +#!/bin/sh > + > +test_description='diff with assume-unchanged entries' > + > +. ./test-lib.sh > + > +# external diff has been tested in t4020-diff-external.sh > + > +test_expect_success 'setup' ' > + echo zero > zero && > + git add zero && > + git commit -m zero && > + echo one > one && > + echo two > two && > + git add one two && > + git commit -m onetwo && > + git update-index --assume-unchanged one && > + echo borked >> one && > + test "$(git ls-files -v one)" = "h one" > +'
Maybe use test_commit, to make it more readable?
Show 6 quoted lines
> + > +test_expect_success 'diff-index does not examine assume-unchanged entries' ' > + git diff-index HEAD^ -- one | grep -q 5626abf0f72e58d7a153368ba57db4c673c0e171 > +' > + > +# TODO ced_uptodate()
What is this about?
Show 5 quoted lines
> +test_expect_success 'diff-files does not examine assume-unchanged entries' ' > + /usr/bin/git diff-files -- one > +' > + > +test_done
Thanks, Dscho