Thread (6 messages) 6 messages, 3 authors, 2024-03-04

Re: [GSOC][RFC] Heed core.bare from template config file when no command line override given, as a microproject.

From: Ghanshyam Thakkar <hidden>
Date: 2024-01-04 10:39:15

On Thu Jan 4, 2024 at 3:54 PM IST, Christian Couder wrote:
On Tue, Jan 2, 2024 at 11:17 PM Ghanshyam Thakkar
[off-list ref] wrote:
quoted
Hello,

I'm currently an undergrad beginning my journey of contributing to the
Git project. I am seeking feedback on doing "Heed core.bare from
template config file when no command line override given" described
here
https://lore.kernel.org/git/5b39c530f2a0edf3b1492fa13a1132d622a0678e.1684218850.git.gitgitgadget@gmail.com/ (local)
by Elijah Newren, as a microproject. I would like to know from the
community, if the complexity and scope of the project is appropriate
for a microproject.
Thanks for your interest in the next GSoC!

My opinion is that it's too complex for a micro-project. Now maybe if
Elijah or others are willing to help you on it, perhaps it will work
out. I think it's safer to look at simpler micro-projects though.
Thank you for your feedback. I will wait for Elijah's response on this and 
perhaps look at other microprojects in the meantime. Although, I think I will 
be able to do this with others help.
quoted
e.g. in builtin/init-db.c :

static int template_bare_config(const char *var, const char *value,
                     const struct config_context *ctx, void *cb)
{
       if(!strcmp(var,"core.bare")) {
We like to have a space character between "if" and "(" as well as after a ","
quoted
             is_bare_repository_cfg = git_config_bool(var, value);
       }
       return 0;
}

int cmd_init_db(int argc, const char **argv, const char *prefix)
{
...
...
       if(is_bare_repository_cfg==-1) {
We like to have a space character both before and after "==" as well
as between "if" and "(".
quoted
             if(!template_dir)
                   git_config_get_pathname("init.templateDir",
                                           &template_dir);

             if(template_dir) {
                   const char* template_config_path
                                = xstrfmt("%s/config",
                   struct stat st;

                   if(!stat(template_config_path, &st) &&
                     !S_ISDIR(st.st_mode)) {
                         git_config_from_file(template_bare_cfg,
                                        template_config_path, NULL);
                   }
             }
...
...
       return init_db(git_dir, real_git_dir, template_dir, hash_algo,
                      initial_branch, init_shared_repository, flags);
}

I also wanted to know if the global config files should have an effect
in deciding if the repo is bare or not.

Curious to know your thoughts on, if this is the right approach or
does it require doing refactoring to bring all the logic in setup.c.
Based on your feedback, I can quickly send a patch.
I don't know this area of the code well, so I don't think I can help
you much on this.
Appreciate your suggestions above. Will keep them in mind while sending the
patch.
Best,
Christian.
Thanks,
Ghanshyam
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help