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

Re: git stash: status from current dir not top dir?

From
Piotr Krukowiecki <piotr.krukowiecki@gmail.com>
Date
Mar 17, 2011, 18:13 UTC
Message-ID
<4D824F46.70107@gmail.com>
In-Reply-To
<4D7E7065.20908@gmail.com>
W dniu 14.03.2011 20:45, Piotr Krukowiecki pisze:
> Right. Wrote a test but it fails mysteriously. Looks like a debug output
> is added when test is run as "sh t3903-stash.sh" (the "Merging Version" etc).
> No such output when "git apply" is run by hand.

To recap the problem was that "git stash apply" run during tests printed some debug messages as shown below. In result I could not compare its output with expected "git status" output.

> Not sure what to do with it?
I found out it was caused by 
    GIT_MERGE_VERBOSITY=5
in test-lib.sh
It was introduced in 8d0fc48f2730 with comment:
    Its really nice to be able to run a test with -v and automatically
    see the "debugging" dump from merge-recursive, especially if we
    are actually trying to debug merge-recursive.
Now I don't know how should I handle this:
    1. unset it just before "git stash apply" in my test
       A safe, local change
    2. remove it from test-lib.sh
       The variable changed git behaviour - might impact tests, should it be
       set by default?
    3. add new option in test-lib.sh to set it (--merge-verbosity?)
       Also looks safe, but still some tests would fail with it
       (which would be mentioned in the option documentation)
    4. change test-lib.sh to set it only when --verbose/--debug is passed
       This seems to be the intention, but test results would be different
       with those options (some tests would fail)!
First three choices look more or less sensible.
Show 59 quoted lines
> With --verbose I see:
> 
> [...]
> [master b27a2bc] subdir
>  Author: A U Thor <author@example.com>
>  1 files changed, 1 insertions(+), 0 deletions(-)
>  create mode 100644 subdir/subfile1
> Saved working directory and index state WIP on master: b27a2bc subdir
> HEAD is now at b27a2bc subdir
> --- ../output	2011-03-14 19:39:42.473685001 +0000
> +++ ../expect	2011-03-14 19:39:42.489685001 +0000
> @@ -1,9 +1,3 @@
> -Merging Version stash was based on with Stashed changes
> -Merging:
> -virtual Version stash was based on
> -virtual Stashed changes
> -found 1 common ancestor(s):
> -virtual 13419d0b4f5b097f61dde4c911de99a154f8286f
>  # On branch master
>  # Changes not staged for commit:
>  #   (use "git add <file>..." to update what will be committed)
> not ok - 41 stash apply shows status same as git status (relative to current directory)
> 
> 
> ---8<---
> From: Piotr Krukowiecki <piotr.krukowiecki@gmail.com>
> Date: Mon, 14 Mar 2011 20:19:36 +0100
> Subject: [PATCH] Add test: git stash shows status relative to current dir
> 
> 
> Signed-off-by: Piotr Krukowiecki <piotr.krukowiecki@gmail.com>
> ---
>  t/t3903-stash.sh |   15 +++++++++++++++
>  1 files changed, 15 insertions(+), 0 deletions(-)
> 
> diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh
> index 6fd560c..3682f1c 100755
> --- a/t/t3903-stash.sh
> +++ b/t/t3903-stash.sh
> @@ -556,4 +556,19 @@ test_expect_success 'stash branch should not drop the stash if the branch exists
>  	git rev-parse stash@{0} --
>  '
>  
> +test_expect_success 'stash apply shows status same as git status (relative to current directory)' '
> +	git stash clear &&
> +	echo 1 > subdir/subfile1 &&
> +	echo 2 > subdir/subfile2 &&
> +	git add subdir/subfile1 &&
> +	git commit -m subdir &&
> +	cd subdir &&
> +	echo x > subfile1 &&
> +	echo x > ../file &&
> +	git stash &&
> +	git stash apply > ../output &&
> +	git status > ../expect &&
> +	test_cmp ../output ../expect
> +'
> +
>  test_done
-- 
Piotr Krukowiecki
Previous: Piotr KrukowieckiNext: Junio C Hamano
Message 6 of 8 in “git stash: status from current dir not top dir?”
  1. Piotr KrukowieckiMar 11, 2011
  2. Jeff KingMar 11, 2011
  3. Piotr KrukowieckiMar 12, 2011
  4. Junio C HamanoMar 14, 2011
  5. Piotr KrukowieckiMar 14, 2011
  6. Piotr KrukowieckiMar 17, 2011
  7. Junio C HamanoMar 17, 2011
  8. Piotr KrukowieckiMar 19, 2011

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.