From: Jeff Hostetler <git@jeffhostetler.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org, Jeff Hostetler <jeffhost@microsoft.com>
Subject: Re: [PATCH v5 9/9] status: unit tests for --porcelain=v2
Date: Wed, 10 Aug 2016 17:28:01 -0400 [thread overview]
Message-ID: <57AB9C61.5060409@jeffhostetler.com> (raw)
In-Reply-To: <xmqq4m6vgpf9.fsf@gitster.mtv.corp.google.com>
On 08/08/2016 01:07 PM, Junio C Hamano wrote:
> Jeff Hostetler <git@jeffhostetler.com> writes:
>
>> +test_expect_success pre_initial_commit_0 '
>> + ...
>> + git status --porcelain=v2 --branch --untracked-files=normal >actual &&
>> + test_cmp expect actual
>> +'
>> +
>> +
>> +test_expect_success pre_initial_commit_1 '
>> + git add file_x file_y file_z dir1 &&
>> + ...
>> + cat >expect <<-EOF &&
>> + # branch.oid (initial)
>> + # branch.head master
>> + 1 A. N... 000000 100644 100644 $_z40 $OID_A dir1/file_a
>> + ...
>
> This makes one wonder what would/should be shown on the "A." column
> if one of these files are added with "-N" (intent-to-add). I do not
> see any test for such entries in this patch, but I think it should.
I must admit that I don't use -N, so I'm open to recommendations here.
In my brief testing, the existing porcelain status reports it as "AM"
(for both a file with content and an empty file).
The V2 code outputs the following:
1 AM N... 000000 100644 100644 0000000000000000000000000000000000000000
e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 intent.add
Which I think makes sense. I'll add a test to exercise that.
> "Try -z on the above" can and should be in the test title to help
> ...
> Having said all that, it is OK to fix their titles after the current
> 9-patch series lands on 'next'; incremental refinements are easier
> on reviewers than having to review too many rerolls.
I'll change the test titles to have all that info.
> This is probably a good place to see what happens to these untracked
> files and branch info if we do not ask the command to show them.
I'll add some cases to cycle thru the options and confirm
there's no output when not requested.
>> +##################################################################
>> +## Ignore a file
>> +##################################################################
>> +
>> +test_expect_success ignore_file_0 '
>> + echo x.ign >.gitignore &&
>> + echo "ignore me" >x.ign &&
>> + H1=$(git rev-parse HEAD) &&
>> +
>> + ## ignored file SHOULD NOT appear in output when --ignored is not used.
>> + ...
>> + git status --porcelain=v2 --branch --untracked-files=all >actual &&
>> + test_cmp expect actual &&
>> + ...
>> + git status --porcelain=v2 --branch --ignored --untracked-files=all >actual &&
>> + rm x.ign &&
>> + rm .gitignore &&
>
> Arrange these files to be cleaned before you create them by having
>
> test_when_finished "rm -f x.ign .gitignore" &&
>
> at the very beginning of this test before they are created.
> Otherwise, if any step before these removal fail, later test that
> assume they are gone will be affected. You already do so correctly
> in the upstream_fields_0 test below.
Missed a few. Got it. Thanks!
>> +
>> + cat >expect <<-EOF &&
>> + # branch.oid $HM
>> + # branch.head AA_M
>> + u AA N... 000000 100644 100644 100644 $_z40 $OID_AA_B $OID_AA_A conflict.txt
>> + EOF
>
> This is a small point, but doesn't the lowercase 'u' somehow look
> ugly, especially because the status letters that immediately follow
> it are all uppercase?
>
Since we are inventing a new format and my column 1 is completely new
I didn't think it mattered. And I used a lowercase 'u' to distinguish
it from the "U" in the X and Y columns since they mean different things.
But we can change it if you'd prefer.
>> + git status --porcelain=v2 --branch --untracked-files=all >actual &&
>> + git reset --hard &&
>
> This "reset" also may be a candidate for test_when_finished clean-up
> (I won't repeat the comment but there probably are many others).
Got it. And I hopefully caught the rest.
>> +test_expect_success 'upstream_fields_0' '
>> + git checkout master &&
>> + test_when_finished rm -rf sub_repo &&
>
> The "when-finished" argument are usually quoted like this, I think:
>
> test_when_finished "rm -rf sub_repo" &&
Got it. Thanks.
I have the test changes ready. As suggested, I'll send a single commit
patch after my 9-patch series lands on 'next'.
Thanks,
Jeff
next prev parent reply other threads:[~2016-08-10 21:30 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-05 22:00 [PATCH v5 0/9] status: V2 porcelain status Jeff Hostetler
2016-08-05 22:00 ` [PATCH v5 1/9] status: rename long-format print routines Jeff Hostetler
2016-08-05 22:00 ` [PATCH v5 2/9] status: cleanup API to wt_status_print Jeff Hostetler
2016-08-05 22:00 ` [PATCH v5 3/9] status: support --porcelain[=<version>] Jeff Hostetler
2016-08-05 22:00 ` [PATCH v5 4/9] status: collect per-file data for --porcelain=v2 Jeff Hostetler
2016-08-05 22:48 ` Junio C Hamano
2016-08-07 8:34 ` Johannes Schindelin
2016-08-07 22:29 ` Eric Wong
2016-08-08 1:57 ` Junio C Hamano
2016-08-05 22:00 ` [PATCH v5 5/9] status: print per-file porcelain v2 status data Jeff Hostetler
2016-08-05 22:51 ` Junio C Hamano
2016-08-05 22:00 ` [PATCH v5 6/9] status: print branch info with --porcelain=v2 --branch Jeff Hostetler
2016-08-05 22:00 ` [PATCH v5 7/9] git-status.txt: describe --porcelain=v2 format Jeff Hostetler
2016-08-05 22:00 ` [PATCH v5 8/9] test-lib-functions.sh: Add lf_to_nul Jeff Hostetler
2016-08-05 22:00 ` [PATCH v5 9/9] status: unit tests for --porcelain=v2 Jeff Hostetler
2016-08-08 17:07 ` Junio C Hamano
2016-08-10 21:28 ` Jeff Hostetler [this message]
2016-08-10 22:41 ` Junio C Hamano
2016-08-10 23:23 ` Jeff Hostetler
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=57AB9C61.5060409@jeffhostetler.com \
--to=git@jeffhostetler.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jeffhost@microsoft.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).