git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

Previous: Johannes SchindelinNext: Nguyen Thai Ngoc Duy
Message 17 of 19 in “Sparse checkout”
  1. 0/4 Sparse checkoutNguyễn Thái Ngọc Duy, Aug 10, 2009
  2. 1/4 Prevent diff machinery from examining assume-unchanged entries on worktreeNguyễn Thái Ngọc Duy, Aug 10, 2009
  3. 2/4 gitignore: read from index if .gitignore is assume-unchangedNguyễn Thái Ngọc Duy, Aug 10, 2009
  4. 3/4 unpack_trees(): add support for sparse checkoutNguyễn Thái Ngọc Duy, Aug 10, 2009
  5. 4/4 read-tree: add --no-sparse to turn off sparse hookNguyễn Thái Ngọc Duy, Aug 10, 2009
  6. Johannes SchindelinAug 10, 2009
  7. Nguyen Thai Ngoc DuyAug 11, 2009
  8. Junio C HamanoAug 11, 2009
  9. Johannes SchindelinAug 11, 2009
  10. Nguyen Thai Ngoc DuyAug 11, 2009
  11. Johannes SchindelinAug 10, 2009
  12. Nguyen Thai Ngoc DuyAug 11, 2009
  13. Johannes SchindelinAug 11, 2009
  14. Johannes SchindelinAug 10, 2009
  15. Nguyen Thai Ngoc DuyAug 11, 2009
  16. Johannes SchindelinAug 11, 2009
  17. Johannes SchindelinAug 10, 2009
  18. Nguyen Thai Ngoc DuyAug 11, 2009
  19. Johannes SchindelinAug 11, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.