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.shIt 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