# [Outreachy] - Week 1

1 messages from 2025-12-16 to 2025-12-16. Participants: Bello Caleb Olamide.
Thread: https://gitlist.dev/t/64635

## Bello Caleb Olamide, 2025-12-16 13:28

Subject: [Outreachy] - Week 1
Message-ID: <aUFem8vqUFCS/4NU@pop-os.localdomain>
URL: https://gitlist.dev/e/aUFem8vqUFCS%2F4NU%40pop-os.localdomain

```
Week 1: Onboarding, Communication, and Choosing My First Issue
Repository: https://gitlab.com/Cloobtech/git

Bello Olamide
·
Dec 12, 2025
·
3 min read


The Outreachy internship officially kicked off this week, and the past few days have been a blend of onboarding activities, community interactions, and diving straight into my project on reducing Git’s global state. It has been exciting, occasionally overwhelming, but overall a very fulfilling start.

Settling Into the Outreachy Community

On the first day, I was invited to the Outreachy community space on Zulip, where interns can ask questions, interact with the program committee, and connect with fellow interns. It was comforting seeing other people who were just as excited and nervous as I was.

Later, I also received an invitation to a GitLab Slack workspace that included my mentors and several Git maintainers. This has become our main space for day-to-day collaboration and technical discussions.

Syncing With My Mentors & Setting Up Communication

I emailed my mentors, Christian Couder and Usman Akinyemi, on Day 1 to introduce myself formally and discuss our preferred communication channels. We agreed to use GitLab as the primary platform to host my working branches, track progress, and prepare merge requests.

With this settled, I set up my GitLab remotes and ensured I could push branches and create a public mirror of my work.

Starting the Project: Identifying My First Issue

I didn’t waste any time getting into the technical part of the project. After reviewing previous contributions, I decided to begin with an earlier patch series, done by Ayush Chandekar, that attempted to move the git_attributes_file global variable out of environment.c and into struct repository.

Link to the discussion can be seen below

https://lore.kernel.org/git/20250309153321.254844-1-ayu.chandekar@gmail.com/

The earlier approach, after moving the git attributes_file into struct repo-setting, proposed passing struct repository *repo through the functions of the attributes subsystem. However, Junio Hamano observed that this design could be improved. His suggestion was insightful:

Instead of accessing git_attributes_file through the repository struct, it should be reached via struct index_state.

This is because:

An index already knows its repository

A repository may have multiple indexes

The attributes subsystem already passes struct index_state down most of its call chain

This results in a cleaner and more consistent API

This design conversation made an excellent starting point for me to understand the trade-offs in Git’s architecture and why reducing global state requires careful restructuring rather than simple variable relocation.

Early Challenges & Mentor Support

While pushing my first branch, I ran into an unexpected issue: GitLab didn’t show the “Merge Request” banner I was expecting.

After some confusion, my mentor stepped in and pointed out that I had pushed to the wrong remote, he however pointed out that this wasn't a fault of mine because that was the URL I was provided with initially. He provided the correct GitLab URL:

https://gitlab.com/gitlab-org/git/

Once I updated the remote and pushed my branch to the right place, everything worked smoothly. This was a small moment, but it reminded me how helpful it is to have mentors who respond quickly and guide me in the right direction.

Closing Thoughts

Overall, Week 1 has been a strong start. I’ve settled into the community, clarified communication channels, chosen the first issue to work on, and begun studying the surrounding code and previous attempts.

So that’s my Week 1 experience.

Catch you all in week2 :)

---

This email is cross-posted from my blog: [https://cloobtech.hashnode.dev/week-1-onboarding-communication-and-choosing-my-first-issue]

```
