git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[GSoC 11 submodule] Status update

From
Fredrik Gustafsson <iveqy@iveqy.com>
Date
Jun 27, 2011, 19:34 UTC
Message-ID
<20110627193444.GA26778@paksenarrion.iveqy.com>

Hi, time for a status update on the git submodule improvements GSoC 11 project. This will be divided in to three section, technical progress, personal reflection and how to follow my work.

You can read my previous status update here [1].

Technical progress ------------------ Three patch-series has been sent with a total of five patches (six if you count patches that I don't have written).

First a patch series to make git submodule update continue update other submodules when one submodule fails to be updated [2]. This patch is now in Junios pu-branch.

Second a minor patch to reduce memory consumption. The improvements was pretty small, but I took it as an exercise to write and send patches (in the first patch-series I'd too many non-code related error for my taste). This patch was however rejected [3].

My third patch series was about making push submodule aware to prevent the user to forgot to push. This is currently sent to the list as an RFC [4]. This was the most challenging patch to write and a good start for my next task.

My fourth task (and the main task of this summer) will start on June 27 and will be to move a submodules .git-dir into the super-projects .git-dir. Design of this is already done and approved by my mentors.

Personal reflection ------------------- Before starting this project I was a frequent git user. I use git every day. Apparently, you can be a frequent git user without using the power of git. I've learned a lot of git as a tool the past weeks. I've learned git rebase very well, a tool I never used before. It's really useful and dangerous. Other commands I started to use (but not had any need for before) was cherry-pick and branches.

I can clearly see that git can be a huge problem in a workspace with power-git-users and unmotivated anti-scm users.

Although I was familiar with valgrind and gdb before, I never had any really use for the tools in my development. Actually, they are really good and I believe I have a lot to learn on this area.

My start has been very slow, it was harder than I thought to write a proper patch and I spent a lot of time on formalities and test-writing, parts that I previously thought where small or non-existing.

For the first time I've truly used a test driven development cycle. My school experience of this was very bad. It was hard, slow and not needed. However, now I learned that you actually can benefit from a test-driven development cycle, that it can save time and that tests actually can be fairly easy to write.

The mentor/student communication has also been something completely new. How much help can you ask for? That's a very hard question. My mentors fortunately helps me with this as well. And so far this has been a really good support. It's far, far better than the support I've at school.

The code review cycle is pretty amazing. All code that I submits is viewed by at least three persons, probably ever more. Even though a few bugs has slipped past to the last guard (Junio) and this proves the real value of code reviewing. Git has by far the most serious code review process I ever worked with. This is amazing and gives a good platform for having good code written. This is also something that we do not practice in school.

How to follow my work --------------------- You can follow my work on github [5]. There are as of now five interesting branches:

* gsoc11_submodule_enhancements
  Contains all patches sent to the list (this does not include RFC
  patches). This will always be clean and "stable".
* git-submodule-update
  Contains all commits for the git-submodule update patch series. This is
  to be considered "stable"
* buggfix
  Contains the minor patch to reduce memory consumption. This wasn't
  accepted by Junio. This is to be considered "stable".
* push_limits
  Contains all commits for the git push limitation patch series. This is
  subject to unstable updates.
* move_gitdir
  Contains all commits for the move git-dir patch-series. This is subject
  to unstable updates.

Links ----- [1] My previous update http://article.gmane.org/gmane.comp.version-control.git/173095/match=iveqy

[2] submodule update continue patch. http://thread.gmane.org/gmane.comp.version-control.git/175500/focus=175725

[3] Use correct value when hinting strbuf_read() http://article.gmane.org/gmane.comp.version-control.git/175844/match=iveqy

[4] push checks for unpushed remotes in submodules http://thread.gmane.org/gmane.comp.version-control.git/176328/focus=176327

[5] Github-page https://github.com/iveqy/git

-- 
Med vänliga hälsningar
Fredrik Gustafsson

tel: 0733-608274
e-post: iveqy@iveqy.com
Next: Phil Hord
Message 1 of 6 in “[GSoC 11 submodule] Status update”
  1. Fredrik GustafssonJun 27, 2011
  2. Phil HordJun 28, 2011
  3. Heiko VoigtJun 28, 2011
  4. Phil HordJun 29, 2011
  5. Junio C HamanoJun 29, 2011
  6. Phil HordJun 30, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.