# [GSoC 2014] git config API improvements

1 messages from 2014-03-16 to 2014-03-16. Participants: Dragos Foianu.
Thread: https://gitlist.dev/t/36191

## Dragos Foianu, 2014-03-16 22:27

Subject: [GSoC 2014] git config API improvements
Message-ID: <1395008878-18677-1-git-send-email-dragos.foianu@gmail.com>
URL: https://gitlist.dev/e/1395008878-18677-1-git-send-email-dragos.foianu%40gmail.com

```
Hello,

My name is Dragos Foianu and I am an undergraduate student at University Politehnica of Bucharest in Romania. This is my final year and I'm planning on doing something more exciting than the simple 
assignments I get from the university.

I have been working with git for quite some time now and I'm currently using it for my diploma project. It was annoying at first but now I love it and it has helped me many times in the past. I wanted to 
contribute to the project and I feel that GSoC 2014 is the perfect opportunity for this.

I am primarily interested in the "git config API improvements" project. I have glanced over the code in order to get an idea of how git-config currently works. The project idea page gives a very good 
description of what is desired. Caching and retrieving values by name sounds to me like a hint to use a hashtable-like data structure. Conveniently, there is already a hashmap implementation in git and 
even more conveniently, there is a cache implementation that uses that data structure. So that part is fairly straightforward.

I have a question, however: how would I go about detecting when a cache invalidation is necessary? Considering I have read a configuration file and cached the configuration in memory, what can trigger 
one of the existing cache entries to be invalidated?

That is all I have to ask for now. I will look over the code during the next few days to get the bigger picture and submit my application. At [1] you can find my microproject patch. I am eagerly awaiting 
for any questions you might have.

All the best,
Dragos

[1] http://thread.gmane.org/gmane.comp.version-control.git/244210

```
