@@ -3,13 +3,27 @@ layout: default
33title : SoC 2014 Ideas
44---
55
6- This is the idea page for Summer of Code 2014.
6+ This is the idea page for Summer of Code 2014 for Git and libgit2 .
77
8- ** Students** : Please consider these ideas as a starting point for
9- generating a proposal. However, we are also happy to receive proposals
10- for independent ideas related to Git.
8+ ## About applying for SoC with the Git project
119
12- ## Pack bitmap support for libgit2
10+ It is strongly recommended that students who want to apply to the Git
11+ project for the Summer of Code 2014 complete a tiny, code-related
12+ "microproject" as part of their application. Please refer to our
13+ [ guidelines and suggestions for microprojects] ( http://git.github.io/SoC-2014-Microprojects.html )
14+ for more information. Completing a microproject is not a strict
15+ requirement, but we will definitely give more attention to applicants
16+ who do so. Doing a microprojects will also help get you started in
17+ the Git project and help you judge whether * you* want to work with
18+ * us* .
19+
20+ ## Summer of code main project ideas
21+
22+ ** Students** : Please consider these ideas as starting points for
23+ generating proposals. We are also more than happy to receive
24+ proposals for other ideas related to Git or libgit2.
25+
26+ ### Pack bitmap support for libgit2
1327
1428Vicent Martí and Jeff King have open-sourced a patchset that implements
1529JGit's pack-bitmap optimization on Core Git. Ironically enough, even
@@ -24,7 +38,7 @@ operations using bitmaps.
2438- Difficulty: medium
2539- Prospective mentors: Vicent Martí / Jeff King
2640
27- ## Abstracted reference backends in Git
41+ ### Abstracted reference backends in Git
2842
2943libgit2 supports a C API to customize the way that the library interacts
3044with the reference store when reading and writing references. There is
@@ -47,7 +61,7 @@ off an on-disk database store).
4761- Difficulty: medium
4862- Prospective mentors: Michael Haggerty / Vicent Martí
4963
50- ## Replace object loading/writing layer by libgit2
64+ ### Replace object loading/writing layer by libgit2
5165
5266Git reads objects from storage (loose and packed) through functions in
5367` sha1_file.c ` . Most commands only require very simple, opaque read and
@@ -64,7 +78,7 @@ without exception.
6478- Difficulty: hard
6579- Possible mentors: Thomas Rast and Vicent Martí
6680
67- ## Invent new conflict style
81+ ### Invent new conflict style
6882
6983As an alternative to the diff3 conflict style, invent a conflict style
7084that shows the original unpatched segment along with the raw patch text.
@@ -74,7 +88,7 @@ The user can then apply the patch by hand.
7488- Difficulty: hard
7589- Possible mentors: Ramkumar Ramachandra
7690
77- ## Improve triangular workflow support
91+ ### Improve triangular workflow support
7892
7993It is common in the git world to have a "triangular" workflow in which
8094commits are fetched from an upstream repository to the local
@@ -91,7 +105,7 @@ prompt shows publish-state.
91105- Difficulty: medium
92106- Possible mentors: Jeff King / Ramkumar Ramachandra
93107
94- ## Refactor tempfile handling
108+ ### Refactor tempfile handling
95109
96110When performing operations that fail, git typically writes to a
97111temporary file and then atomically moves it into place. During failures,
@@ -106,7 +120,7 @@ shared with other files that are cleaned automatically, like lockfiles.
106120- Difficulty: easy
107121- Possible mentors: Jeff King
108122
109- ## ` git-bisect ` improvements
123+ ### ` git-bisect ` improvements
110124
111125The student will become familiar with the ` git-bisect ` command and
112126implement many small-to-medium fixes. Two examples:
@@ -128,7 +142,7 @@ with the Git community and include specific projects in their proposal.
128142- Difficulty: easy
129143- Possible mentors: Christian Couder
130144
131- ## Unifying ` git branch -l ` , ` git tag -l ` , and ` git for-each-ref `
145+ ### Unifying ` git branch -l ` , ` git tag -l ` , and ` git for-each-ref `
132146
133147These three commands are all about selecting a subset of a repository's
134148refs, and then printing the result. However, the implementations are not
@@ -145,7 +159,7 @@ formatting, and use it consistently in the three commands.
145159- Difficulty: medium
146160- Possible mentors: Jeff King
147161
148- ## Git server framework in libgit2
162+ ### Git server framework in libgit2
149163
150164Libgit2 has support for the client side of the negotiation, but it's missing
151165server-side capabilities. We wouldn't want to simply reimplement ` upload-pack `
@@ -163,7 +177,7 @@ make decisions about updates in the callbacks instead of script hooks.
163177- Difficulty: medium
164178- Possible mentors: Carlos Martín / Ed Thomson
165179
166- ## History repair tools
180+ ### History repair tools
167181
168182Sometimes git objects contain malformed or undesirable data. E.g.,
169183broken author emails, skewed dates, trees with duplicate filenames are
0 commit comments