All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Jeff King <peff@peff.net>
Cc: Taylor Blau <me@ttaylorr.com>,
	git@vger.kernel.org, dstolee@microsoft.com, mhagger@alum.mit.edu
Subject: Re: [PATCH v2 3/4] commit-graph.c: write non-split graphs as read-only
Date: Tue, 28 Apr 2020 09:50:02 -0700	[thread overview]
Message-ID: <xmqqk11z4ksl.fsf@gitster.c.googlers.com> (raw)
In-Reply-To: <20200428033438.GA2369457@coredump.intra.peff.net> (Jeff King's message of "Mon, 27 Apr 2020 23:34:38 -0400")

Jeff King <peff@peff.net> writes:

> If we're just doing this for a single test, perhaps it would be better
> to set the umask in that test (perhaps even in a subshell to avoid
> touching other tests). I guess that's a little awkward here because the
> write and the mode-check happen in separate snippets.

Yes, and we cannot afford to place the writing side under POSIXPERM
prerequisite.

> Or going in the opposite direction: if we think that covering the rest
> of the test suite with a diversity of umasks isn't worthwhile, we could
> just set "umask" in test-lib.sh. That would solve this problem and any
> future ones.

Seen from the point of view of giving us a stable testing
environment, it certainly feels like an easy and simple thing to do.
I do not offhand see any downsides in that approach.

On the other hand, we use and rely on test-specified umask only in a
few tests (t0001, t1301 and t1304).  Perhaps we should discourage
tests outside these to rely too heavily on exact perm bits?

For example, I wonder if we should have used

	test -r commit-graph && ! test -w commit-graph 

to ensure the file is read-only to the user who is testing, instead
of relying on parsing "ls -l" output, which IIRC has bitten us with
xattr and forced us to revise test_modebits helper in 5610e3b0 (Fix
testcase failure when extended attributes are in use, 2008-10-19).
That would make the test require SANITY instead, though.

> I also wondered if it would be simpler to just limit the scope of the
> test, like so:
> ...
> +	# check only user mode bits, as we do not want to rely on
> +	# test environment umask
> +	grep ^-r-- actual
>  '
> ...
> but maybe there's some value in checking the whole thing.

Yeah, I guess we are wondering about the same thing.

Among various approaches on plate, my preference is to use "umask
022" around the place where we prepare the $TRASH_DIRECTORY and do
so only when POSIXPERM is there in the test-lib.sh.  I do not know
if we should do so before or after creating the $TRASH_DIRECTORY;
my gut feeling is that in the ideal world, we should be able to

 - create trash directory

 - use the directory to automatically figure out POSIXPERM

 - if POSIXPERM is set, use umask 022 and chmod og=rx the trash
   directory

Automatically figuring out POSIXPERM the above approach shoots for
is a much larger change, so I am not in a haste to implement it and
it may be OK to only do "umask 022" after we set POSIXPERM for
everybody but MINGW at least as the initial cut, but that would mean
we would run for quite a long time with the testing user's umask
during the setup process, which is unsatisfying.

  reply	other threads:[~2020-04-28 16:50 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-20 22:50 [PATCH 0/3] commit-graph: write non-split graphs as read-only Taylor Blau
2020-04-20 22:51 ` [PATCH 1/3] tempfile.c: introduce 'create_tempfile_mode' Taylor Blau
2020-04-20 23:31   ` Junio C Hamano
2020-04-20 22:51 ` [PATCH 2/3] lockfile.c: introduce 'hold_lock_file_for_update_mode' Taylor Blau
2020-04-20 22:51 ` [PATCH 3/3] commit-graph.c: write non-split graphs as read-only Taylor Blau
2020-04-20 23:23 ` [PATCH 0/3] commit-graph: " Junio C Hamano
2020-04-20 23:39   ` Taylor Blau
2020-04-21  1:17     ` Junio C Hamano
2020-04-21  7:01       ` Jeff King
2020-04-21 18:59         ` Junio C Hamano
2020-04-27 16:27 ` [PATCH v2 0/4] " Taylor Blau
2020-04-27 16:27   ` [PATCH v2 1/4] tempfile.c: introduce 'create_tempfile_mode' Taylor Blau
2020-04-27 16:27   ` [PATCH v2 2/4] lockfile.c: introduce 'hold_lock_file_for_update_mode' Taylor Blau
2020-04-27 16:28   ` [PATCH v2 3/4] commit-graph.c: write non-split graphs as read-only Taylor Blau
2020-04-27 23:54     ` Junio C Hamano
2020-04-27 23:59       ` Taylor Blau
2020-04-28  0:25         ` Junio C Hamano
2020-04-28  3:34         ` Jeff King
2020-04-28 16:50           ` Junio C Hamano [this message]
2020-04-28 20:59             ` Jeff King
2020-04-28 21:05               ` Junio C Hamano
2020-04-28 21:08                 ` Jeff King
2020-04-28 21:44                   ` Taylor Blau
2020-04-28 21:58                     ` Jeff King
2020-04-28 23:22                       ` Junio C Hamano
2020-04-29 11:52                         ` Derrick Stolee
2020-04-27 16:28   ` [PATCH v2 4/4] commit-graph.c: ensure graph layers respect core.sharedRepository Taylor Blau
2020-04-27 17:21     ` Taylor Blau
2020-04-27 20:58       ` Jeff King
2020-04-29 17:36 ` [PATCH v3 0/5] commit-graph: write non-split graphs as read-only Taylor Blau
2020-04-29 17:36   ` [PATCH v3 1/5] tempfile.c: introduce 'create_tempfile_mode' Taylor Blau
2020-04-29 17:36   ` [PATCH v3 2/5] lockfile.c: introduce 'hold_lock_file_for_update_mode' Taylor Blau
2020-04-29 17:36   ` [PATCH v3 3/5] commit-graph.c: write non-split graphs as read-only Taylor Blau
2020-04-29 17:36   ` [PATCH v3 4/5] commit-graph.c: ensure graph layers respect core.sharedRepository Taylor Blau
2020-04-29 17:36   ` [PATCH v3 5/5] commit-graph.c: make 'commit-graph-chain's read-only Taylor Blau
2020-05-01  5:52   ` [PATCH v3 0/5] commit-graph: write non-split graphs as read-only Jeff King

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=xmqqk11z4ksl.fsf@gitster.c.googlers.com \
    --to=gitster@pobox.com \
    --cc=dstolee@microsoft.com \
    --cc=git@vger.kernel.org \
    --cc=me@ttaylorr.com \
    --cc=mhagger@alum.mit.edu \
    --cc=peff@peff.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.