Subject: A Question from a Hopeful Future Contributor

From: Eric Frederickson <[email-masked]>
Date: Fri, 18 Jul 2025 18:26:31 -0400

Hello everyone,

I hope that this message finds you well! I'm a software developer and passionate
git user, and I'd like to try my hand at contributing to the project. I'm
sending this message in order to ask Junio and the team if there's anything that
would be particularly useful / appropriate for me to start looking into on that
front. (Reading through the last few "What's cooking" messages, I didn't see
anything that jumped out at me as needing a new contributor, which is why I'm
asking in a separate message instead of replying to one of those.)

(Some notes on my skills: working on docs or tests is always a favorite for me,
so things in those areas would be a great time. Also comfortable with low-level
code, and any kind of scripting. Note too that academic background centers
around programming language design and parsing related stuff, so I've got some
fluency in those areas that I could hopefully apply well to the project if ever
needed.)

Looking through the repo for a place to find todo items, I naturally stumbled
upon the TODO file in the origin/todo branch, and saw an item in there which
seemed like it could be a good place to start:

> * "git status" on intent-to-add index entries (say "I" in the first
>   column instead of "A" for short status, add "(needs 'git add')" at the
>   end of "new file: $path " in long status).

I am interpreting this todo message as meaning that the following behavior
should be implemented:

Given the initial conditions created by the following setup commands:

---
mkdir EXAMPLE
cd EXAMPLE

git init

touch a.txt b.txt c.txt

git add a.txt
git add --intent-to-add b.txt

# Leave c.txt untracked so that it shows up for reference in the git-status
# outputs below.
---

The goal of the todo item is to have the short git-status message change from
this:

---
A  a.txt
 A b.txt
?? c.txt
---

to this:

---
A  a.txt
 I b.txt
?? c.txt
---

and to have the long git-status message change from this:

---
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
	new file:   a.txt

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	new file:   b.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	c.txt
---

to this:

---
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
	new file:   a.txt

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	new file:   b.txt (needs 'git add')

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	c.txt
---

Let me know if this would be a good change to pursue. Also open to trying
anything else that's needed!

Thank you for your time,
--
Eric Frederickson
[email-masked]
https://emfred.com