On 4/5/21 8:14 PM, Christian Couder wrote:
You could add something like "so that the `git submodule` is fully
implemented using C".
Sure I'll add this.
##Work to be done##
The only command that is left to be ported is `git submodule add`.
The previous work on this by Shourya Shukla in GSoC 2020, did
not reach a successful merge due to some issues in design and
was kicked out because it has been stale for so long.
Maybe you could explain a bit what "kicked out" means, or replace it
with something more explicit, for people who don't know well how Git
development works.
Okay, I'll explain it in simple terms. Actually in the docs version
I added a link to the `kicked out` phrase directing to :
https://github.com/git/git/blob/1861aa482a38ae84f597cede48167ab43e7e50a3/whats-cooking.txt#L1158-L1169
I'll add this in the textual format too.
The first
and foremost aim of the project will be to finish porting this
command.
You mean the "add" sub-command, or the full "submodule" command?
The "add" command.
Before porting the `git submodule add` command the initial work
would be dedicated to the implementation of small helper functions
in the form of small patches, which would be directly used by the
`add` command. This workflow is based on the suggestion by
Junio C Hamano on the thread:
https://lore.kernel.org/git/xmqqd01sugrg.fsf@xxxxxxxxxxxxxxxxxxxxxx/.
This workflow would help in the following ways:
- It would help in sending patches in a small digestible format.
- It would help the reviewers easily review those small units
of patches in a single sitting.
- It would help keep small logical units of code in different clean commits.
Yeah, nice!
How does this compare with Shourya's work? Will this avoid the design
issues in Shourya's work?
It would help in faster and more thorough reviews by the reviewers.
Since last time, the patches sent were quite large in size, it became quite
tedious and difficult to review the patch at once. Due to this, the review
and changes cycle slacked off and hence the patch never made it to master.
Sending the patches in small chunks and separate logic units would speed up
the review cycle.
Nice! Maybe you could give an example and tell:
- how you would name one of the above function,
- what would be its arguments,
- perhaps how you would test it
...
Sure I'll add example prototype of the functions.
- After implementation of all these helper methods, the main
`module_add()` function would be implemented using the helper
functions listed above as well as those helper functions which
are predefined.
=================================================
Ok, I will review the other parts later.
Thanks!
Thanks for the review, really helpful :).