Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Git completion slowness

On Fri, Dec 10, 2010 at 12:37, Nikolai Weibull <now@xxxxxxxx> wrote:
> On Fri, Dec 10, 2010 at 12:07, Frank Terbeck <ft@xxxxxxxxxxxxxxxxxxx> wrote:
>> We've heard people complaining about _git performance on IRC for a while
>> now. I have started to rewrite the _git file related completions some
>> time ago, but have since been swamped at work. So that has slowed down
>> to a halt.
>> I'll attach the code to this mail though; maybe it'll be useful to
>> someone (search for "Git file listing helpers" to find the helper
>> functions). It doesn't have a helper for pathspecs yet, which the
>> git-checkout completion (and others) may need.
>> Also, it's something I experimented with for only a short while. The
>> completions did work for me in my limited set of use-cases - they are
>> probably not perfect, yet. But they scaled well even on huge
>> repositories with many *many* files (like the linux kernel's git
>> repository).
>> Cc:ing Nikolai, too.
> Iâve been rewriting _git for a while now. ÂIâve updated all the Main
> Porcelain Commands. ÂIâm currently stuck on something as unimportant
> as git-config, but I want to get everything right and Iâm doing it all
> in man page order. ÂIâll hopefully have a delayed Christmas gift for
> you all at the beginning of 2011. ÂIâll take a look at your changes
> and integrate them if they are still applicable.
> My main problem right now is that Iâm working off of the Debian Zsh
> Git repository where I donât have write permissions. ÂIâd like to set
> up a Zsh Git repository at GitHub so that I can more easily distribute
> my changes, but I havenât had time to look into setting this up.
> Perhaps someone can explain how you set up a CVS-to-Git mirror on
> GitHub?

That's easy.
1) create a project at github or any other git hoster and a plain git
repository in this project.
2) create a local git repo with 'git init', use git-cvsimport to
import the cvs repo into this git repo.
3) add the git hoster (i.e. github) as a remote in your git repo via
'git remote add' (or just copy'n'paste this from the hosters
4) push the imported cvs repo, which is now your git repo, to the remote.

You can use git-cvsexportcommit to get it back into CVS.
You can also use git-cvsimport to get your git-repo up-to-date,
because I don't think there is a way that github itself can keep track
of an external CVS repo.

Hope this helps -- looking forward to the shiny new git-completion!

Messages sorted by: Reverse Date, Date, Thread, Author