Skip to content

Commit b122c9b

Browse files
committed
SoC-2026-Ideas: some more improvements to the ideas
1 parent 900e6bd commit b122c9b

1 file changed

Lines changed: 22 additions & 15 deletions

File tree

SoC-2026-Ideas.md

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ for current functionality.
8585

8686
A number of improvements could be made to both sub-commands:
8787

88-
For `git repo info`, potential improvements include:
88+
**For `git repo info`**, potential improvements include:
8989

9090
- Remove the dependency on `the_repository` global variable
9191
- Use the category as key (e.g., `git repo info layout` would return all layout-related values)
@@ -104,12 +104,12 @@ For `git repo info`, potential improvements include:
104104

105105
Some work to add path-related values
106106
[has already started](https://github.com/lucasoshiro/git/compare/master...repo-info-path/),
107-
so completing that work might be a good starting point. It would require a
108-
decision to be made on whether relative or absolute paths should be used.
107+
so completing that work might be a good starting point. A major design decision
108+
will need to be made on whether to use relative or absolute paths.
109109

110-
For `git repo structure`, functionality from
110+
**For `git repo structure`**, functionality from
111111
[git-sizer](https://github.com/github/git-sizer) could be added to provide
112-
more detailed repository analysis.
112+
more detailed repository analysis and statistics.
113113

114114
The goal of this project is to discuss possible improvements to
115115
`git repo` with the community, reach an agreement about the best
@@ -149,29 +149,36 @@ From around June 2024 to March 2025, work was undertaken by Eric Ju to add a
149149
`remote-object-info` sub-command to `git cat-file`. This client-side work
150150
builds upon previous server-side work by Calvin Wan that was merged in 2021.
151151
The feature allows clients to request information about objects from a remote
152-
repository without downloading the full object content.
152+
repository without downloading the full object content, which can be especially
153+
useful for partial clones and large repositories.
153154

154155
See the [initial patch series](https://lore.kernel.org/git/20240628190503.67389-1-eric.peijian@gmail.com/)
155156
for the original proposal and discussion.
156157

157-
The first goal of this project is to rebase and finalize Eric Ju's
158-
patch series by addressing the remaining feedback, so that the
159-
improved series can be merged.
158+
**The first goal** of this project is to rebase and finalize Eric Ju's
159+
patch series by addressing the remaining feedback from the community review,
160+
so that the improved series can be merged into Git.
160161

161-
The second goal is to build on top of that work to add support for
162+
**The second goal** is to build on top of that work to add support for
162163
object type information (`%(objecttype)`). This support should be
163164
added both on the server side and on the client side, extending the
164-
protocol to include this metadata.
165+
protocol to include this metadata and making it available to users.
166+
167+
This project involves both protocol design and implementation work, requiring
168+
careful attention to backward compatibility and performance considerations.
165169

166170
**Getting started:** Build Git from source, study the existing `git cat-file`
167-
command and its batch modes, review Eric Ju's patch series and the community
168-
feedback, understand Calvin Wan's merged server-side work from 2021, and
169-
submit a micro-patch to demonstrate familiarity with the codebase.
171+
command and its batch modes (particularly `--batch` and `--batch-check`),
172+
review Eric Ju's patch series and the community feedback in detail, understand
173+
Calvin Wan's merged server-side work from 2021, study the object-info protocol
174+
extension in `Documentation/gitprotocol-v2.txt`, and submit a micro-patch to
175+
demonstrate familiarity with the codebase.
170176

171177
**Resources:**
172178
- [Eric Ju's patch series (June 2024)](https://lore.kernel.org/git/20240628190503.67389-1-eric.peijian@gmail.com/)
173179
- [git-cat-file documentation](https://git-scm.com/docs/git-cat-file)
174-
- Calvin Wan's server-side work (2021) - search mailing list archives
180+
- [Git Protocol v2 documentation](https://git-scm.com/docs/gitprotocol-v2)
181+
- Calvin Wan's server-side work (2021) - search Git mailing list archives
175182

176183
_Expected Project Size_: 90 or 175 hours or 350 hours
177184

0 commit comments

Comments
 (0)