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@xxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html