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

Re: [PATCH 1/3] t7300: add tests to document behavior of clean and nested git

From
erik elfström <erik.elfstrom@gmail.com>
Date
Apr 7, 2015, 19:27 UTC
Message-ID
<CAMpP7NZS5QB7YJF72OgRwSNM=ui=hm0KGaq_s35TS_5Nd40xOw@mail.gmail.com>
In-Reply-To
<CAPig+cTHp3rc_o+cpgguXkPj_aUU6-Hw-Kv6RXyGv8Yt06conQ@mail.gmail.com>
will fix!
On Tue, Apr 7, 2015 at 12:06 AM, Eric Sunshine <sunshine@sunshineco.com> wrote:
Show 126 quoted lines
> On Mon, Apr 6, 2015 at 7:48 AM, Erik Elfström <erik.elfstrom@gmail.com> wrote:
>> Signed-off-by: Erik Elfström <erik.elfstrom@gmail.com>
>> ---
>> diff --git a/t/t7300-clean.sh b/t/t7300-clean.sh
>> index 99be5d9..cfdf6d4 100755
>> --- a/t/t7300-clean.sh
>> +++ b/t/t7300-clean.sh
>> @@ -455,6 +455,88 @@ test_expect_success 'nested git work tree' '
>>         ! test -d bar
>>  '
>>
>> +test_expect_failure 'nested git (only init) should be kept' '
>> +       rm -fr foo bar &&
>> +       mkdir foo bar &&
>> +       (
>> +               cd foo &&
>> +               git init
>> +       ) &&
>> +       (
>> +               cd bar &&
>> +               >goodbye.people
>> +       ) &&
>
> (minor; ignore if desired) The above could be simplified to:
>
>     rm -fr foo bar &&
>     git init foo &&
>     mkdir bar &&
>     >bar/goodbye.people &&
>
>> +       git clean -f -d &&
>> +       test -f foo/.git/HEAD &&
>> +       ! test -d bar
>
> Here and elsewhere, you could instead use test_path_is_file() and
> test_path_is_missing(), respectively.
>
>> +'
>> +
>> +test_expect_failure 'nested git (bare) should be kept' '
>> +       rm -fr foo bar &&
>> +       mkdir foo bar &&
>> +       (
>> +               cd foo &&
>> +               git init --bare
>> +       ) &&
>> +       (
>> +               cd bar &&
>> +               >goodbye.people
>> +       ) &&
>
> Simplified:
>
>     rm -fr foo bar &&
>     git init --bare foo &&
>     mkdir bar &&
>     >bar/goodbye.people &&
>
>> +       git clean -f -d &&
>> +       test -f foo/HEAD &&
>> +       ! test -d bar
>> +'
>> +
>> +test_expect_success 'giving path in nested git work tree will remove it' '
>> +       rm -fr foo &&
>> +       mkdir foo &&
>> +       (
>> +               cd foo &&
>> +               git init &&
>> +               mkdir -p bar/baz &&
>> +               cd bar/baz &&
>> +               >hello.world
>> +               git add . &&
>> +               git commit -a -m nested
>> +       ) &&
>> +       git clean -f -d foo/bar/baz &&
>> +       test -f foo/.git/HEAD &&
>> +       test -d foo/bar/ &&
>
> Alternative, here and elsewhere: test_path_is_dir()
>
>> +       ! test -d foo/bar/baz
>> +'
>> +
>> +test_expect_success 'giving path to nested .git will not remove it' '
>> +       rm -fr foo &&
>> +       mkdir foo bar &&
>> +       (
>> +               cd foo &&
>> +               git init &&
>> +               >hello.world
>> +               git add . &&
>> +               git commit -a -m nested
>> +       ) &&
>> +       git clean -f -d foo/.git &&
>> +       test -f foo/.git/HEAD &&
>> +       test -d foo/.git/refs &&
>> +       test -d foo/.git/objects &&
>> +       test -d bar/
>> +'
>> +
>> +test_expect_success 'giving path to nested .git/ will remove contents' '
>> +       rm -fr foo bar &&
>> +       mkdir foo bar &&
>> +       (
>> +               cd foo &&
>> +               git init &&
>> +               >hello.world
>> +               git add . &&
>> +               git commit -a -m nested
>> +       ) &&
>> +       git clean -f -d foo/.git/ &&
>> +       test 0 = $(ls -A foo/.git | wc -l) &&
>
> Although in the latest POSIX, -A may not be portable.
>
> Alternative: test_dir_is_empty()
>
>> +       test -d foo/.git
>> +'
>> +
>>  test_expect_success 'force removal of nested git work tree' '
>>         rm -fr foo bar baz &&
>>         mkdir -p foo bar baz/boo &&
>> --
>> 2.4.0.rc0.37.ga3b75b3
Previous: Eric SunshineNext: Eric Sunshine
Message 4 of 14 in “Improving performance of git clean”
  1. 0/3 Improving performance of git cleanErik Elfström, Apr 6, 2015
  2. 1/3 t7300: add tests to document behavior of clean and nested gitErik Elfström, Apr 6, 2015
  3. Eric SunshineApr 6, 2015
  4. erik elfströmApr 7, 2015
  5. Eric SunshineApr 7, 2015
  6. Torsten BögershausenApr 7, 2015
  7. 2/3 p7300: added performance tests for cleanErik Elfström, Apr 6, 2015
  8. Torsten BögershausenApr 6, 2015
  9. Eric SunshineApr 6, 2015
  10. erik elfströmApr 7, 2015
  11. 3/3 clean: improve performance when removing lots of directoriesErik Elfström, Apr 6, 2015
  12. Eric SunshineApr 6, 2015
  13. erik elfströmApr 7, 2015
  14. Eric SunshineApr 8, 2015

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.