Hi, all. Thanks to Stefan's valuable advice, I have get more clear idea on my GSOC on Subversion.
After browsing the information, I focused on the interesting project "Show progress output'[1.]. I've noticed that, there is a svn_ra_progress_notify_func_t in svn_client_ctx_t and svn_ra_neon__session_t, and it's used to report the progress. However, it's not enough, it can just report progress in terms of bytes but not in terms of file, and it can not even to report the total size to be transferred so far. The problem focuses on how to compute the total data (total bytes and total file num) to transfered. The second is how to present this information to users. Without knowledge about the internals of Subversion, I think it's hard to make some progress. So I turn to read the document. Below are what I've read in the last two weeks: 1."Subversion's delta editor interface"[2.]. I have studied the well-bounded interface of delta editor, and guess maybe the progress function can be wrapped into existing editors. Certainly, I need more knowledge to decide whether it's feasible. 2."subversion-design"[3.]. I have covered the whole design spec, and gotten a clearer idea on Subversion's 3-layers Architecture, Versioning Model and Delta Format. It seems we can get data transferred already from libsvn-ra-*. 3."subversion/libsvn_wc/README" and "subversion/libsvn_fs_fs/structure". They gave me knowledge about file layout in client and server. I also created a repo on my PC and done some experiments. I saw the sharded files under ".svn/pristine/" (it's really different for SVN 1.7), and looked closely into various kind of data in the Revision files under "myrepos/db/revs". In the following days, I plan to cover "svn/notes/http-and-webdav/webdav-usage.html", "libsvn_ra_svn/protocal", "libsvn_ra_neon/README" and "libsvn_ra_serf/README" to understand how the libsvn_ra_* works. Then, I will read the code within 'subversion/include/' advised by [4.]. Before late of March, I hope to launch a discussion about this project in develop mailing list to collect ideas on it. Wish for your advice! [1.]http://subversion.tigris.org/issues/show_bug.cgi?id=901 [2.]http://www.red-bean.com/kfogel/beautiful-code/bc-chapter-02.html [3.]http://svn.apache.org/repos/asf/subversion/trunk/notes/subversion-design.html [4.]http://subversion.apache.org/docs/community-guide/general.html ---------- Forwarded message ---------- From: Stefan Sperling <s...@elego.de> Date: Sun, Feb 19, 2012 at 8:29 PM Subject: Re: GSOC 2012 To: Yunal Li <yunal...@gmail.com> Cc: dev@subversion.apache.org On Sun, Feb 19, 2012 at 07:59:09PM +0800, Yunal Li wrote: > Hi, all. Hi! > GSOC 2012 was announced[1]. Could anybody tell me, whether > SVN join this GSOC and which project ideas will be work on please? The Apache Software Foundation (ASF) as a whole is taking part in GSOC. Students wishing to work on Subversion must apply to the ASF. However, we should also make sure that there is someone in the Subversion project who will review student applications this year and mentor a student during GSOC. Else, applications for Subversion made via the ASF will probably be disregarded. I would suggest starting a separate mailing-list thread asking Subversion committers to consider registering as GSOC 2012 mentors. > As a student developing with SVN for several years, I would love to > work on subversion for this GSOC. So far, I have set up the build > environment on Ubuntu and "make install" successfully. These days I'm > reading documents on http://subversion.apache.org to get more > knowledge about development about SVN, and also read source code in > subversion/tests/. However, in my opinion, subversion is a big system, > I think maybe it's better to focus on one part related to the GSOC > project idea. You can study the roadmap to get a high-level overview of things that need to be done: http://subversion.apache.org/roadmap.html If one of the planned features sparks your interest, you could ask more specific questions about the topic on this list. Most of these tasks are way too huge for a GSOC project. But it should always be possible to carve out tasks that lie on the way towards a big new feature but have the right size for a GSOC project. Here are some more ideas I found by searching the mailing list archives: http://svn.haxx.se/dev/archive-2011-03/0576.shtml http://svn.haxx.se/dev/archive-2011-03/0575.shtml This page is old and some items are out of date. But it is still relevant: http://svn.apache.org/repos/asf/subversion/trunk/www/tasks.html?p=876756 You might find more ideas by searching for issues in the issue tracker marked 'bite-sized': http://subversion.tigris.org/issues/buglist.cgi?component=subversion&issue_status=NEW&issue_status=STARTED&issue_status=REOPENED&email1=&emailtype1=exact&emailassigned_to1=1&email2=&emailtype2=exact&emailreporter2=1&issueidtype=include&issue_id=&changedin=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&short_desc=&short_desc_type=fulltext&long_desc=&long_desc_type=fulltext&issue_file_loc=&issue_file_loc_type=fulltext&status_whiteboard=&status_whiteboard_type=fulltext&keywords=bite-sized&keywords_type=anytokens&field0-0-0=noop&type0-0-0=noop&value0-0-0=&cmdtype=doit&order=Issue+Number&Submit+query=Submit+query I hope these links help you with finding a nice idea for a GSOC project. -- Yunal