public inbox for git@vger.kernel.org
 help / color / mirror / Atom feed
From: Shreyansh Paliwal <shreyanshpaliwalcmsmn@gmail.com>
To: git@vger.kernel.org
Cc: christian.couder@gmail.com, karthik.188@gmail.com,
	jltobler@gmail.com, ayu.chandekar@gmail.com,
	siddharthasthana31@gmail.com
Subject: Re: [GSOC][PROPOSAL]: Refactoring in order to reduce Git’s global state
Date: Sat,  7 Mar 2026 18:16:49 +0530	[thread overview]
Message-ID: <20260307125740.95052-1-shreyanshpaliwalcmsmn@gmail.com> (raw)
In-Reply-To: <CAP8UFD2cchYrwbhym1m9Kif7hBu3BXaK2YvOexwZT+Lcfi30LQ@mail.gmail.com>

> Hi Shreyansh,
>
> On Fri, Mar 6, 2026 at 4:16 PM Shreyansh Paliwal
> <shreyanshpaliwalcmsmn@gmail.com> wrote:
> >
> > Hello all,
> >
> > This is my first draft of GSoC 2026 proposal for the project
> > 'Refactoring in order to reduce Git’s global state'.
>
> Thanks for your interest in Git.
>
> > I am Shreyansh Paliwal, a pre-final year undergraduate student at Guru
> > Gobind Singh Indraprastha University, New Delhi, India. I am a technology
> > enthusiast, who began programming in 2018 with Java as my first language
> > and later transitioned to C/C++ in 2023 as my primary focus. I enjoy
> > exploring new technologies and programming languages, and I have developed
> > solid experience building applications using TypeScript, React.js, Node.js,
> > and AWS. I actively participate in technical events and have organized
> > multiple hackathons, tech-fests, and related activities at my college as
> > the SIG-Head of IOSD, a tech-focused student community.
>
> Interesting. Do you have links about these?

Yup, I can gather some related links for these, will add them.

>
> > Pre-GSOC:
> > ---------
>
> > During this process, I attempted to remove the usage of the_repository from
> > a file. However, after discussion on the mailing list, Phillip pointed out
> > that the change was not particularly useful in that context and could
> > introduce segfaults that would not justify the effort for builtin code.
> > Based on this feedback, I dropped that attempt and instead focused on
> > understanding the broader global state refactoring effort. To better
> > understand the project area, I studied previous patches and blog posts by
> > Ayush Chandekar and Olamide Bello, followed discussions on the mailing
> > list, and explored parts of the codebase such as the wt-status and worktree
> > subsystems. This helped me understand the ongoing effort to reduce Git’s
> > reliance on global state and motivated me to work further in this area.
> >
> > The following is a list of my contributions, ordered from earliest to most
> > recent:
> >
> > Patches for Git:
> > ----------------
> >
> > * test-lib-functions.sh: fix test_grep fail message wording
> >         Status: Merged into master
>
> The status should be "Released as part of v2.43.1" or something like
> that as far as I can see.

Right, got it.

> >         Mailing List: https://lore.kernel.org/git/20231203171956.771-1-shreyanshpaliwalcmsmn@gmail.com/
> >         Merge Commit: 37e8d795bed7b93d3f12bcdd3fbb86dfe57921e6
>
> If you say "Merge Commit" we expect the commit that merged your work.
> It looks like this commit contains your work, so I think it's better
> to just say "Commit" instead.
>

Understood. I will change "Merge Commit" to "Commit" for all the patches.

> >         Log: This was my first patch to Git in 2023. While browsing the
> >                  source code and past issues, I noticed that even after
> >                  the test_i18ngrep function was deprecated, an error message
> >                  referring to test_grep was left behind. I updated the
> >                  wording to correctly reference test_i18ngrep.
>
> I think it should be something like:
>
> ... even after the test_i18ngrep function was deprecated, an error
> message referring to test_i18ngrep was left behind. I updated the
> wording to correctly reference test_grep.
>

Oops, I'll fix the wording.

> > * doc: MyFirstContribution: fix missing dependencies and clarify build steps
> >         Status: Merged into master
> >         Mailing List: https://lore.kernel.org/git/20260112195625.391821-1-shreyanshpaliwalcmsmn@gmail.com/
> >         Merge Commit: 81021871eaa8b16a892b9c8791a0c905ab26e342
>
> Same thing about "Merge Commit" vs "Commit". Below too.
>
> >         Log: While getting familiar with the codebase, I followed the
> >                  MyFirstContribution documentation and encountered a few
> >                  issues. Some include headers were missing, the synopsis
> >                  format was incorrect, and the explanation for -j$(nproc)
> >                  was absent. I submitted fixes to improve the clarity and
> >                  correctness of the documentation.
> >
> > * t5500: simplify test implementation and fix git exit code suppression (Microproject)
> >         Status: Merged into master
> >         Mailing List: https://lore.kernel.org/git/20260121130012.888299-1-shreyanshpaliwalcmsmn@gmail.com/
> >         Merge Commit: a824421d3644f39bfa8dfc75876db8ed1c7bcdbf
> >         Log: This was completed as a microproject for GSoC. Instead of
> >                 constructing the pack protocol using a complex combination
> >                 of here-docs and echo commands, the patch captures command
> >                 outputs beforehand and uses the test-tool pkt-line pack
> >                 helper to construct the protocol input in a temporary file
> >                 before feeding it to git upload-pack.
> >
> > * show-index: add warning and wrap error messages with gettext
> >         Status: Merged into master
> >         Mailing List: https://lore.kernel.org/git/20260130153603.290196-1-shreyanshpaliwalcmsmn@gmail.com/
> >         Merge Commit: ea39808a22714b8f61b9472de7ef467ced15efea,
> >                 227e2cc4e1415c4aeadceef527dd33e478ad5ec3
> >         Log: While exploring the code, I noticed a TODO comment suggesting
> >                 automatic hash detection. After discussion on the mailing
> >                 list, it was concluded that there was no future-proof
> >                 approach to implement this until a new index file format
> >                 came into use. Instead, an explicit warning was added rather
> >                 than silently falling back to SHA-1. Additionally, several
> >                 error messages were missing gettext wrapping, which was also
> >                 fixed.
> >
> > * wt-status: reduce reliance on global state
> >         Status: Merged into seen
>
> When a patch series isn't yet merged into next, it's better to tell
> what's its status in Junio's latest "What's cooking in git.git ..."
> email. For this one, it looks like it is "Will merge to 'next'.".
>

Yes, merging to next was just confirmed in the latest Mar 2026 #03,
before this it was still with a question mark and pending for any comments.
I will update the status, including for the send-email patch.

> >         Mailing List: https://lore.kernel.org/git/20260218175654.66004-1-shreyanshpaliwalcmsmn@gmail.com/
> >         Merge Commit: a7cd24de0b3b679c16ae3ee8215af06aeea1e6a3,
> >                 9d0d2ba217f3ceefb0315b556f012edb598b9724,
> >                 4631e22f925fa2af8d8548af97ee2215be101409
> >         Log: This has been the most significant patch series in my journey
> >                 so far. It began with a suggestion from Phillip to clean up
> >                 some the_repository usages in wt-status.c. I extended the
> >                 effort to remove all usages of the_repository and
> >                 the_hash_algo from the file. During review discussions, it
> >                 was suggested that some worktree API cleanup should happen
> >                 first, particularly regarding the representation of worktrees
> >                 as NULL. Some related changes were later moved to a separate
> >                 series, after which this refactoring proceeded.
> >
> > * worktree: change representation and usage of primary worktree
> >         Status: Continued by Phillip Wood [1]
>
> Here you can also say that they have been merged into master. Maybe:
> "Status: Merged into master after being continued by Phillip Wood"
>

Makes sense. I'll update this.

> >         Mailing List: https://lore.kernel.org/git/20260213120529.15475-1-shreyanshpaliwalcmsmn@gmail.com/
> >         Log: This worktree API cleanup series started while I was working
> >                 on wt-status. The intention was to modify the representation
> >                 of the current worktree so that struct worktree would not be
> >                 NULL. During discussion, Phillip clarified that NULL actually
> >                 represents the current worktree rather than the primary
> >                 worktree. Since Phillip already had a patch based on the right
> >                 logic, he continued the series and it was eventually merged
> >                 into master.

[...]

> >
> > * Coding period (May 25 - August 16):
> >         - Review the work done by Olamide Bello on moving values parsed by
> >                  git_default_config() into the repo_config_values structure and
> >                  identify any remaining tasks.
>
> I think this should be part of the Community Bonding period.
>
> >         - Complete remaining cleanup or refactoring related to the worktree API,
> >                  if left any [19].
> >         - Identify straightforward refactors to remove usages of the_repository
> >                  in files such as xdiff-interface.c, archive*.c, fsmonitor*.c etc.
> >         - Work file by file with the goal of eliminating
> >                  #define USE_THE_REPOSITORY_VARIABLE by replacing global usages
> >                  with explicit repository instances.
> >         - Concurrently maintain at least two parallel patch series:
> >                 + Small / straightforward refactors and replacements like
> >                          the_hash_algo or the_repostitory.
> >                 + Larger structural refactors involving globals such as
> >                          DEFAULT_ABBREV, comment_line_str etc.
> >         - Publish weekly or biweekly blog updates documenting progress and design
> >                  decisions.
> >
> > * Final week (august 17 - august 24):
> >         - Address any remaining tasks or pending patches.
> >         - Recieve final feedback from mentors and reviewers.
>
> s/Recieve/Receive/
>
> >         - Prepare a detailed report summarizing the work completed during the project.
>
>
> Thanks for your proposal!

Thanks Christian, for reading and for the suggestions, I'll revise
and send an updated version on this.

  reply	other threads:[~2026-03-07 12:58 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-06 14:57 [GSOC][PROPOSAL]: Refactoring in order to reduce Git’s global state Shreyansh Paliwal
2026-03-07 10:33 ` Christian Couder
2026-03-07 12:46   ` Shreyansh Paliwal [this message]
2026-03-07 20:04 ` [GSOC][PROPOSAL v2]: " Shreyansh Paliwal
2026-03-09 14:42   ` Christian Couder
2026-03-10 14:58     ` Shreyansh Paliwal
2026-03-20 18:12   ` [GSOC][PROPOSAL v3]: " Shreyansh Paliwal
  -- strict thread matches above, loose matches on Subject: below --
2026-03-17 17:54 [GSoC Proposal] Refactoring in order to reduce Git's " Francesco Paparatto
2026-03-21 13:36 ` Christian Couder
2026-03-21 13:56   ` Francesco Paparatto
2026-03-21 16:32   ` Junio C Hamano

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=20260307125740.95052-1-shreyanshpaliwalcmsmn@gmail.com \
    --to=shreyanshpaliwalcmsmn@gmail.com \
    --cc=ayu.chandekar@gmail.com \
    --cc=christian.couder@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=jltobler@gmail.com \
    --cc=karthik.188@gmail.com \
    --cc=siddharthasthana31@gmail.com \
    /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