* [GSoC] Update: Week 3
@ 2017-06-05 20:56 Prathamesh Chavan
2017-06-05 22:25 ` Stefan Beller
0 siblings, 1 reply; 3+ messages in thread
From: Prathamesh Chavan @ 2017-06-05 20:56 UTC (permalink / raw)
To: git; +Cc: Stefan Beller, Christian Couder
SUMMARY OF MY PROJECT:
Git submodule subcommands are currently implemented by using shell script
'git-submodule.sh'. There are several reasons why we'll prefer not to
use the shell script. My project intends to convert the subcommands into
C code, thus making them builtins. This will increase Git's portability
and hence the efficiency of working with the git-submodule commands.
Link to the complete proposal: [1]
Mentors:
Stefan Beller <sbeller@google.com>
Christian Couder <christian.couder@gmail.com>
UPDATES:
As planned for the third week, most of the time was spent on improving the
conditions of the present patches, which deal with porting the following
submodule subcommands:
1. foreach: After a discussion over the issue of the path variable in
windows, in this week my mentor, Stefan Beller came up with the
appropriate solution for the problem after discussing it with Ramsay
Jones. It is being posted on the mailing list for further discussion on
including it.[2]
Also, some changes are suggested to the posted version of ported foreach
function which needs to be taken care of.[3]
2. status: The subcommand's porting is completed and has been discussed
with the mentors for the last two week after which, a new version of the
ported function is posted on the mailing list.[4][5]
3. sync: The subcommand's porting is completed and I am currently discussing
it with my mentors for improving the ported function.
4. summary: Porting of this subcommand is underway and will be trying to
finish it in the following week.
PLAN FOR WEEK-4 (6 June 2017 to 12 June 2017):
1. sync: since this ported function is currently under discussion with
the mentors, firstly I'll be looking forward to improvising it as
suggested and do the needful changes.
2. ported function on the mailing list: currently the ported functions
foreach and status are on the mailing list, under discussion.
I will be updating the patches on the list and improvising
them as required for eventually getting these merged.
3. summary and deinit: I will resume porting submodule subcommands
from shell to C, firstly git-submodule summary and then git-submodule
deinit for this week.
[1]: https://docs.google.com/document/d/1krxVLooWl--75Pot3dazhfygR3wCUUWZWzTXtK1L-xU/
[2]: https://public-inbox.org/git/20170603003710.5558-1-sbeller@google.com/
[3]: https://public-inbox.org/git/20170602112428.11131-2-pc44800@gmail.com/
[4]: https://public-inbox.org/git/20170605202529.22959-1-pc44800@gmail.com/
[5]: https://public-inbox.org/git/20170605202529.22959-2-pc44800@gmail.com/
Thanks,
Prathamesh Chavan
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [GSoC] Update: Week 3
2017-06-05 20:56 [GSoC] Update: Week 3 Prathamesh Chavan
@ 2017-06-05 22:25 ` Stefan Beller
0 siblings, 0 replies; 3+ messages in thread
From: Stefan Beller @ 2017-06-05 22:25 UTC (permalink / raw)
To: Prathamesh Chavan; +Cc: git, Christian Couder
On Mon, Jun 5, 2017 at 1:56 PM, Prathamesh Chavan <pc44800@gmail.com> wrote:
> 1. foreach: After a discussion over the issue of the path variable in
> windows, in this week my mentor, Stefan Beller came up with the
> appropriate solution for the problem after discussing it with Ramsay
> Jones.
Thanks for having so much faith in my abilities, but it may not be
appropriate, yet. (It does multiple things at once, which is generally
a bad sign already. )
Maybe to be unblocked on the conversion of foreach, you could make
the patch have the original behavior, i.e.
<up_path><submodule path>
which makes sense in the way that it is only converting from shell to C,
not fixing a bug along the way. As we discovered a bug, you could just put
a NEEDSWORK comment explaining what the problem is; deferring solving
the issue until later.
I'll review the other patches.
Thanks,
Stefan
^ permalink raw reply [flat|nested] 3+ messages in thread
* [GSOC Update] Week 2
@ 2016-05-15 17:45 Pranit Bauva
2016-05-22 19:58 ` [GSoC Update] Week 3 Pranit Bauva
0 siblings, 1 reply; 3+ messages in thread
From: Pranit Bauva @ 2016-05-15 17:45 UTC (permalink / raw)
To: git
Cc: christian.couder, chriscool, larsxschneider, andrew.ardill,
Pranit Bauva
================================= SUMMARY ==================================
My micro project on adding config variable to git-commit for verbose options
is going to be merged with the master branch soon and will be available for
git 2.8.3 . I also rewrote a few shell functions in C.
My public git.git is available here[1]. I regularly keep pushing my work so
anyone interested can track me there. Feel free to participate in the
discussions going on PRs with my mentors. Your comments are valuable.
=============================== INTRODUCTION ==============================
The purpose of this project is to convert the git-bisect utility which partly
exists in the form of shell scripts to C code so as to make it more portable.
I plan to do this by converting each function to C and then calling it from
git-bisect.sh so as to use the existing test suite to test the function which
is converted.
Mentors:
Christian Couder <chriscool@tuxfamily.org>
Lars Schneider <larsxschneider@gmail.com>
================================== Updates =================================
Things which were done in this week:
* I have sent the patches[2] for check_term_format() and write_terms() so
as to demonstrate how I am going to use the subcommand approach wherein
I will first convert a method and then call it by using a subcommand.
Then when another method is converted the previous method will be removed
from the subcommand and will instead be called from the new method. Junio
has collected this patch and queued it on a branch gitster/pb/bisect and
is available for testing on the pu branch. I am encouraging people to
test it and provide useful comments.
* I have also converted bisect_log() and bisect_voc() whose patches[3] are
sent to the list. Junio is yet to pick these up.
* I have converted the function bisect_clean_state() but its in a very
rudimentary form. Well I generally do like this. I first have a *just*
working model of a function and then I polish it by introducing the git's
API and write error handling code and resolve the style issues. Though it
is available on github[4]. The current version plainly removes the refs
using the git's API. I am quite aware that refs shouldn't be handled in this way
(this fact is constantly reminded in the docs). I am reading up on the
available methods for refs manipulation.
* I have also sent an independent patch[5] to explicitly test whether
bisection state is properly cleaned up.
* Also studied the functioning (upto an extent) of git-for-each-ref and
git-udpate ref as it is required during the conversion of
bisect_clean_state().
* The main part (I think) was that I read about the method's which handled the
refs. It was an interesting read though I did not read upon the actual
implementations of those, I mainly covered "What does the method do?" and
"How to use the method in my code?". git-grep is my best friend for this.
* I am still quite amazed by the amount of attention refs receive. Christian
explained a bit though I still don't get the feel why they are *sooo*
important. I was recently reading the Git Rev News and also seeing the
patches by Michael Haggerty and David Turner and I was quite amazed on
the amount of attention refs get.
* I also noticed a minor thing with bisect cleanups[6]. After the bisection
state is cleaned up the folder "refs/bisect/" is not removed. I pointed
this out but Christian thought it is okay the way it is.
* When I was converting the function write_terms() Christian advised to use
`|| exit` when calling it with a subcommand using `git bisect--helper
--write-terms $TERM_BAD bad` but it got the test no. 43 and 44 failing in
t6030. On a little bit investigation by Christian, these tests seem to
fail when there is a bare repo. He asked me to investigate it further.
I have currently not found enough time. Will do it in the coming week.
================================= NEXT STEPS ================================
Things which would be done in the coming week:
* Finish bisect_clean_state() conversion. I will first put it up on github
to receive comments from my mentors and then post it to the mailing list.
* Convert the function bisect_head(). I plan to convert this function and add
it as a subcommand to test the implementation but I will only send the
function without the subcommand to the mailing list because its a too small
function. Though the subcommand version will be put up on github for
everyone to verify whether it is passing the test suite like I have done it
for bisect_voc().
* Convert the function bisect_write(). I plan to convert this function and
add it as a subcommand.
* Investigate why test no. 43 and 44 are failing in t6030 with `|| exit` in
--write-terms.
================================ NOTIFICATION ==============================
I will be taking a short vacation from 16th May, 2016 to 19th May, 2016 so
I wouldn't be available via email and also will not be able to work. I intend
to make up for the lost time by working on weekends.
[1]: https://github.com/pranitbauva1997/git
[2]: http://thread.gmane.org/gmane.comp.version-control.git/294388
[3]: http://thread.gmane.org/gmane.comp.version-control.git/294571
[4]: https://github.com/pranitbauva1997/git/pull/6
[5]: http://thread.gmane.org/gmane.comp.version-control.git/294520
[6]: https://github.com/pranitbauva1997/git/pull/8
PS: Thanks to Andrew Ardill <andrew.ardill@gmail.com> on providing his comments
of how to improve the format of this update email. I have tried to make it
as exhaustive as possible.
Regards,
Pranit Bauva
^ permalink raw reply [flat|nested] 3+ messages in thread
* [GSoC Update] Week 3
2016-05-15 17:45 [GSOC Update] Week 2 Pranit Bauva
@ 2016-05-22 19:58 ` Pranit Bauva
0 siblings, 0 replies; 3+ messages in thread
From: Pranit Bauva @ 2016-05-22 19:58 UTC (permalink / raw)
To: git; +Cc: larsxschneider, chriscool, christian.couder, Pranit Bauva
============================ INTRODUCTION ==============================
The purpose of this project is to convert the git-bisect utility which
partly exists in the form of shell scripts to C code so as to make it more
portable. I plan to do this by converting each function to C and then
calling it from git-bisect.sh so as to use the existing test suite to test
the function which is converted.
Mentors:
Christian Couder <chriscool@tuxfamily.org>
Lars Schneider <larsxschneider@gmail.com>
============================== UPDATES =================================
Things which were done in this week:
* My patches for write_terms()[1] and bisect_log()/voc()[2] have collected
some reviews from Eric Sunshine and Johannes Schindelin.
* As advised in the reviews I have mainly read about git_path() and other
related functions from cache.h
* Also read up on the refs stuff like for_each_ref_in() which Junio
mentioned in the previous update email.
* I have made 2 commits[3] which I am keeping on hold for now as they are
followup for a commit made by Jeff King which I came across while
reading about git_path() and related stuff.
* I have kind of finished writing bisect_clean_state() function. But I
am still working on that as I suspect there might be something missing.
============================ NEXT STEPS ================================
Since I wasn't able to cover up many things this week (which I had
initially planned), those things have now been carried forward along with
a few other stuff. I plan to work more this week and the coming few ones
to make up for the lost time.
Things which would be done in the coming week:
* Finish off (finally) bisect_clean_state() conversion.
* Convert the function bisect_head(). I plan to convert this function and
add it as a subcommand to test the implementation but I will only send
the function without the subcommand to the mailing list because its a
too small function. Though the subcommand version will be put up on
github for everyone to verify whether it is passing the test suite like
I have done it for bisect_voc().
* Convert the function bisect_write(). I plan to convert this function
and add it as a subcommand.
* Investigate why test no. 43 and 44 are failing in t6030 with `|| exit`
in --write-terms.
[1]: http://thread.gmane.org/gmane.comp.version-control.git/294388
[2]: http://thread.gmane.org/gmane.comp.version-control.git/294571
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-06-05 22:25 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-06-05 20:56 [GSoC] Update: Week 3 Prathamesh Chavan
2017-06-05 22:25 ` Stefan Beller
-- strict thread matches above, loose matches on Subject: below --
2016-05-15 17:45 [GSOC Update] Week 2 Pranit Bauva
2016-05-22 19:58 ` [GSoC Update] Week 3 Pranit Bauva
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).