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

Re: [PATCH] mv: Fix spurious warning when moving a file in presence of submodules

From
Jens Lehmann <jens.lehmann@web.de>
Date
Oct 13, 2013, 18:37 UTC
Message-ID
<525AE868.9050207@web.de>
In-Reply-To
<vpqr4bp6wkh.fsf@anie.imag.fr>
Am 13.10.2013 17:05, schrieb Matthieu Moy:
Show 9 quoted lines
> Jens Lehmann <Jens.Lehmann@web.de> writes:
> 
>>  static struct lock_file lock_file;
>> +#define SUBMODULE_WITH_GITDIR ((const char *)1)
> 
> I don't like very much hardcoded addresses like this. Are you 100% sure
> address 1 will never be returned by xstrdup on any platform? The risk is
> small if not negligible, but I'm unconfortable with this. Isn't there an
> alternative (NULL, or empty string) that is guaranteed to never happen?

All alternatives I could think of would require an extra array storing that information, which I dismissed for performance and memory footprint reasons (NULL is already taken for not being a submodule). I think 1 is one of the safest hard coded addresses as on sane systems accessing the zeropage will trigger a segfault. And if someday someone wants to free the memory I expect the special casing of 1 to be rather obvious. But I'm open to alternatives and would change that if people disagree.

>> +test_expect_success 'git mv moves a submodule with a .git directory and .gitmodules' '
> 
> This doesn't seem to test the problem I was having (move a file, not a
> submodule). Is this intentional?

Yes. The first idea was to simply move the update_path_in_gitmodules() into the "if (submodule_gitfile[i])"-block, but that would have resulted in not updating .gitmodules for submodules with a .git directory, which I would consider a bug. So I thought this was worth an extra test case, while I wasn't sure testing mv of a regular file to not issue a warning is a very useful test case in submodule context.

> In any case, this fixes my problem, thanks!
Sure, glad to help and thanks for testing!
Previous: Matthieu MoyNext: Jonathan Nieder
Message 5 of 8 in “Spurious warning when moving a file in presence of submodules”
  1. Matthieu MoyOct 11, 2013
  2. Jens LehmannOct 11, 2013
  3. mv: Fix spurious warning when moving a file in presence of submodulesJens Lehmann, Oct 13, 2013
  4. Matthieu MoyOct 13, 2013
  5. Jens LehmannOct 13, 2013
  6. Jonathan NiederOct 14, 2013
  7. Matthieu MoyOct 14, 2013
  8. Jonathan NiederOct 17, 2013

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.