Here's the latest instalment of my weekly Git blog:
https://atharvaraykar.me/gitnotes/week6
A peek:
* Project progress and current strategy.
(mostly relevant to mentors)
* Reflections:
- How does Git even start?
(https://atharvaraykar.me/gitnotes/week6#how-does-git-even-start)
This was just something I was curious about, not really important
to my project. If anyone knows the answer to what I asked in that,
section, it would be nice to know!
Thanks.
---
Atharva Raykar
ಅಥರ್ವ ರಾಯ್ಕರ್
अथर्व रायकर
From: Felipe Contreras <hidden> Date: 2021-06-27 17:01:56
Atharva Raykar wrote:
* Reflections:
- How does Git even start?
(https://atharvaraykar.me/gitnotes/week6#how-does-git-even-start)
This was just something I was curious about, not really important
to my project. If anyone knows the answer to what I asked in that,
section, it would be nice to know!
They are not all linked together.
Take for example shell.c, which will be used to generate shell.o, which
is used here:
PROGRAM_OBJS += shell.o
PROGRAM_OBJS is used here:
PROGRAMS += $(patsubst %.o,git-%$X,$(PROGRAM_OBJS))
This means shell.o will be used to generate a program called git-shell.
But the "git" program will not use PROGRAM_OBJS, therefore it will not
link shell.o.
Cheers.
--
Felipe Contreras
Great, thanks!
Small nit: s/has not not yet/has not yet/
About "This kind of an invocation was done before in the context of
submodules, but it does not look reusable to me because it seems to
have side effects, that meddle with the repository’s object store."
couldn't a commit walk do the job (see
Documentation/MyFirstObjectWalk.txt)?
On 27-Jun-2021, at 22:31, Felipe Contreras [off-list ref] wrote:
Atharva Raykar wrote:
quoted
* Reflections:
- How does Git even start?
(https://atharvaraykar.me/gitnotes/week6#how-does-git-even-start)
This was just something I was curious about, not really important
to my project. If anyone knows the answer to what I asked in that,
section, it would be nice to know!
They are not all linked together.
Take for example shell.c, which will be used to generate shell.o, which
is used here:
PROGRAM_OBJS += shell.o
PROGRAM_OBJS is used here:
PROGRAMS += $(patsubst %.o,git-%$X,$(PROGRAM_OBJS))
This means shell.o will be used to generate a program called git-shell.
But the "git" program will not use PROGRAM_OBJS, therefore it will not
link shell.o.
Thanks, that explained a lot of things for me, and I noticed
'git.c:cmd_main()' does indeed call these separately created
executables (like git-shell).
I'll try to update my blog post with this explanation when I get
some free time for it.
Great, thanks!
Small nit: s/has not not yet/has not yet/
Thanks, I'll update it.
About "This kind of an invocation was done before in the context of
submodules, but it does not look reusable to me because it seems to
have side effects, that meddle with the repository’s object store."
couldn't a commit walk do the job (see
Documentation/MyFirstObjectWalk.txt)?
I did have a look at it (not very thorough, though), and I immediately
felt that it was too low-level to be a drop-in replacement for
'is_tip_reachable'. I'll have a more thorough look at it though, and
see if I can make that work out nicely.