tools.linux.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dave Marquardt <davemarq@linux.ibm.com>
To: Konstantin Ryabitsev <konstantin@linuxfoundation.org>
Cc: "Kernel.org Tools" <tools@kernel.org>
Subject: Re: [PATCH b4] Create temporary directory in current working directory
Date: Wed, 18 Jun 2025 10:02:13 -0500	[thread overview]
Message-ID: <87wm99hz4a.fsf@linux.ibm.com> (raw)
In-Reply-To: <20250618-bipedal-saluki-of-expression-04cde5@lemur> (Konstantin Ryabitsev's message of "Wed, 18 Jun 2025 09:54:00 -0400")

Konstantin Ryabitsev <konstantin@linuxfoundation.org> writes:

> On Fri, Jun 13, 2025 at 02:04:05PM -0500, Dave Marquardt wrote:
>> 
>> 
>> ---
>> In edit_with_editor, create temporary directory in current working
>> directory. This avoids issues with Emacs and Magit, which insists
>> COMMIT_EDITMSG must be in the repo's directory tree.
>
> I'm curious how you ended up with the --- at the start of this. Seems like a
> bug that needs fixing.

Hmm, I'll take a look at that too!

>> diff --git a/src/b4/__init__.py b/src/b4/__init__.py
>> index 0a7daec..79d695a 100644
>> --- a/src/b4/__init__.py
>> +++ b/src/b4/__init__.py
>> @@ -4423,7 +4423,7 @@ def edit_in_editor(bdata: bytes, filehint: str = 'COMMIT_EDITMSG') -> bytes:
>>      editor = corecfg.get('editor')
>>      logger.debug('editor=%s', editor)
>>      # Use filehint name in hopes that editors autoload necessary highlight rules
>> -    with tempfile.TemporaryDirectory(prefix='b4-editor') as temp_dir:
>> +    with tempfile.TemporaryDirectory(prefix='b4-editor', dir=Path.cwd()) as temp_dir:
>>          temp_fpath = os.path.join(temp_dir, filehint)
>>          with open(temp_fpath, 'xb') as edit_file:
>>              edit_file.write(bdata)
>
> I think we can do better than that. We can call call git_get_toplevel() and,
> if that is not None, specify dir as toplevel/.git/b4, otherwise default to dir
> as being None to let it use whatever Python thinks should be the default. Can
> you test if using .git/b4/COMMIT_EDITMSG will do the right thing for you?

Yes, that's a good idea. I'll work on an update.

> We shouldn't use cwd(), because this can litter your git tree with junk. I
> know Python is supposed to always clean it up, but this can still have bad
> consequences if you run the editor in b4, forget that it's open in another
> terminal window, and then try to do some git operations.

Yeah, I can see that happening!

-Dave

      reply	other threads:[~2025-06-18 15:02 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-13 19:04 [PATCH b4] Create temporary directory in current working directory Dave Marquardt
2025-06-18 13:54 ` Konstantin Ryabitsev
2025-06-18 15:02   ` Dave Marquardt [this message]

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=87wm99hz4a.fsf@linux.ibm.com \
    --to=davemarq@linux.ibm.com \
    --cc=konstantin@linuxfoundation.org \
    --cc=tools@kernel.org \
    /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).