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

Re: [PATCH] Teach git-diff{,-files} the new option `--no-index`

From
Junio C Hamano <junkio@cox.net>
Date
Feb 22, 2007, 20:28 UTC
Message-ID
<7vd542dji4.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<Pine.LNX.4.63.0702222051490.22628@wbgn013.biozentrum.uni-wuerzburg.de>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
Show 8 quoted lines
>> For one thing, I want to move read_cache() out of run_diff_files() and 
>> run_diff_index() to their callers, so that the caller can use a 
>> handcrafted active_cache[] that is somewhat different from what 
>> read_cache() originally read.
>
> I don't understand. Would it not be easier to "return active_nr" in 
> read_cache_from(path) _also_ when active_cache is set? Or alternatively 
> check if active_alloc is set?
I do not understand your questions.

What I am getting at is that in the current code (without your patch), run_diff_files() is about diff between $GIT_DIR/index and working tree. I want to make it diff between active_cache[] and working tree.

The caller still can use read_cache() or read_cache_from(path) to populate active_cache[], but it is not limited to. It can do other index manipulations before calling run_diff_files(). For example, it can do read_tree() to populate active_cache[] before calling run_diff_files() and/or run_diff_index(). Or maybe it can run multi-tree read_tree() to populate active_cache[], internally merge them without writing the merge results out, and then call run_diff_files() to show "here is what would happen if you were to run a merge now", all inside active_cache[].

Of course such a caller needs to be careful not to write active_cache[] out when it shouldn't, but that goes without saying. git-diff-index already mucks with active_cache[] with full intention of not writing it out.

Please see near the tip of 'pu', around here, for much simpler usage pattern I had in mind:

commit 910d798768989d8fe581c2afcfd501307db81b10
Author: Junio C Hamano <junkio@cox.net>
    git-status: use in-core --refresh in a read-only repository.
commit c5cc9b14a0f36d7fab66b3152f0ebcb442674bfc
Author: Junio C Hamano <junkio@cox.net>
    git-runstatus --refresh
commit b4e1e4a787d3771f617182b3344dcdd9224bd0cb
Author: Junio C Hamano <junkio@cox.net>
    run_diff_{files,index}(): update calling convention.
Previous: Johannes SchindelinNext: Johannes Schindelin
Message 9 of 13 in “Teach git-diff{,-files} the new option `--no-index`”
  1. Teach git-diff{,-files} the new option `--no-index`Johannes Schindelin, Feb 20, 2007
  2. Junio C HamanoFeb 22, 2007
  3. Johannes SchindelinFeb 22, 2007
  4. Junio C HamanoFeb 22, 2007
  5. Johannes SchindelinFeb 22, 2007
  6. run_diff_files(): add option to prevent --no-indexJohannes Schindelin, Feb 22, 2007
  7. Junio C HamanoFeb 22, 2007
  8. Johannes SchindelinFeb 22, 2007
  9. Junio C HamanoFeb 22, 2007
  10. Johannes SchindelinFeb 22, 2007
  11. Teach git-diff-files the new option `--no-index`Johannes Schindelin, Feb 22, 2007
  12. Junio C HamanoFeb 23, 2007
  13. Johannes SchindelinFeb 23, 2007

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.