From: Johannes Schindelin <Johannes.Schindelin@gmx.de> To: Jakub Narebski <jnareb@gmail.com> Cc: Shourya Shukla <shouryashukla.oo@gmail.com>, christian.couder@gmail.com, t.gummerer@gmail.com, git@vger.kernel.org, gitster@pobox.com Subject: Converting scripted commands to built-ins, was Re: [GSoC] Exploring Previous year Projects Date: Thu, 30 Jan 2020 12:10:06 +0100 (CET) Message-ID: <nycvar.QRO.7.76.6.2001301154170.46@tvgsbejvaqbjf.bet> (raw) In-Reply-To: <86k15ars55.fsf@gmail.com> [-- Attachment #1: Type: text/plain, Size: 3586 bytes --] Hi Kuba, On Wed, 29 Jan 2020, Jakub Narebski wrote: > Shourya Shukla <shouryashukla.oo@gmail.com> writes: > > > Hello, > > > > I was looking at the previous year projects[1] and a project intrigued me, namely: > > "Convert scripts to builtins". > > > > Following from Christian's advice[2], I have decided to focus on my project proposal. > > I noticed that various commands such as "git bisect", "git web--browse"(it particularly > > interests me) are still in their "shell" form and will be needed to be converted into > > their "C" form as per the project description. > [...] > > [1]: https://git.github.io/SoC-2019-Ideas/ > > [2]: https://lore.kernel.org/git/CAP8UFD2Fo=2suQDLwzLM-Wg3ZzXpqHw-x0brPtPV0d4dRsgs9A@mail.gmail.com/ > > As far as I know, "git bisect" is currently being converted from shell > to C by Miriam Rubio for Outreachy project [3], so I am not sure if it > would be feasible as GSoC 2020 project. Indeed. That one "is already taken". > I'm not sure if it would be possible and if it would make sense to > convert "git instaweb" and/or it's helper script "git web--browse" from > shell to C. I agree, both of those scripts seem not to benefit all that much from being converted, while some people would still consider them to be developed easier as shell scripts. > I think trying to convert either "git stash" or "git submodule" to C > would make more sense. Oh, but `git stash` is already converted. The only two remainining shell scripts for which I would consider a conversion to C to make sense are `git submodule` and `git mergetool`. Large parts of `git submodule` are already implemented in `git submodule--helper`, so that's a head start (thanks Stephan Beller!). The `git mergetool` command is a bit trickier, as it consists of three scripts, really, with the `difftool--helper` depending on `mergetool--lib`. Realistically, I think that it would be possible for a GSoC student who is already very familiar with the code base and with submodules to finish the conversion of `git submodule` in one season. The same is probably not true for `git mergetool`: it would require a couple of seasons to convert, and a good chunk of the first month would be taken by planning a conversion strategy. As of the current `master`, the `git-*.sh` scripts are: # In the process of being converted git-bisect.sh # Candidates for being converted git-difftool--helper.sh git-mergetool--lib.sh git-mergetool.sh git-submodule.sh # Trivial conversions git-merge-octopus.sh git-merge-one-file.sh git-merge-resolve.sh # Already deprecated git-filter-branch.sh git-legacy-stash.sh git-rebase--preserve-merges.sh # Is this even needed anymore? git-quiltimport.sh # Probably better to leave them as shell scripts git-instaweb.sh git-request-pull.sh git-web--browse.sh # Not even Git commands git-parse-remote.sh git-sh-i18n.sh git-sh-setup.sh The situation of the Perl scripts to be converted is much nicer: # Already in code review git-add--interactive.perl # Too complex/too dependent on the Perl packages git-send-email.perl git-svn.perl # Support for legacy SCMs that are less and less used git-archimport.perl git-cvsexportcommit.perl git-cvsimport.perl git-cvsserver.perl So: after `git add -i`, I think we're done with the conversion of the Perl scripts. Took long enough ;-) Ciao, Dscho > > [3]: https://public-inbox.org/git/20200128144026.53128-1-mirucam@gmail.com/t/#u > > Best, > -- > Jakub Narębski >
next prev parent reply other threads:[~2020-01-30 11:10 UTC|newest] Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-01-29 17:12 Shourya Shukla 2020-01-29 19:15 ` Jakub Narebski 2020-01-30 11:10 ` Johannes Schindelin [this message] 2020-01-30 15:14 ` Converting scripted commands to built-ins, was " Derrick Stolee 2020-01-31 9:32 ` Johannes Schindelin 2020-01-31 9:57 ` Johannes Schindelin
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style List information: http://vger.kernel.org/majordomo-info.html * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=nycvar.QRO.7.76.6.2001301154170.46@tvgsbejvaqbjf.bet \ --to=johannes.schindelin@gmx.de \ --cc=christian.couder@gmail.com \ --cc=git@vger.kernel.org \ --cc=gitster@pobox.com \ --cc=jnareb@gmail.com \ --cc=shouryashukla.oo@gmail.com \ --cc=t.gummerer@gmail.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
git@vger.kernel.org list mirror (unofficial, one of many) This inbox may be cloned and mirrored by anyone: git clone --mirror https://public-inbox.org/git git clone --mirror http://ou63pmih66umazou.onion/git git clone --mirror http://czquwvybam4bgbro.onion/git git clone --mirror http://hjrcffqmbrq6wope.onion/git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V1 git git/ https://public-inbox.org/git \ git@vger.kernel.org public-inbox-index git Example config snippet for mirrors. Newsgroups are available over NNTP: nntp://news.public-inbox.org/inbox.comp.version-control.git nntp://ou63pmih66umazou.onion/inbox.comp.version-control.git nntp://czquwvybam4bgbro.onion/inbox.comp.version-control.git nntp://hjrcffqmbrq6wope.onion/inbox.comp.version-control.git nntp://news.gmane.io/gmane.comp.version-control.git note: .onion URLs require Tor: https://www.torproject.org/ code repositories for the project(s) associated with this inbox: https://80x24.org/mirrors/git.git AGPL code for this site: git clone https://public-inbox.org/public-inbox.git