Re: [StGIT PATCH] Don't use patches/<branch>/current
- From
Karl Hasselström <kha@treskal.com>
- Date
- May 16, 2007, 20:40 UTC
- Message-ID
- <20070516204029.GB17805@diana.vm.bytemark.co.uk>
- In-Reply-To
- <20070516194002.GA17805@diana.vm.bytemark.co.uk>
On 2007-05-16 21:40:02 +0200, Karl Hasselström wrote:
Show 13 quoted lines
> On 2007-05-16 13:07:14 +0100, Catalin Marinas wrote:
>
> > I did a quick test of 'stg series' with the DAG patches applied,
> > on a Linux kernel repository ('du -sh .git' is 285M) with 42
> > patches (only 25 applied). It constantly takes over 2 seconds to
> > complete (compared to < 200ms without the DAG patches). The
> > problem is that this delay will happen for bash completion as
> > well.
>
> This is more than ten times as expensive as in my measurement.
> Curious. And the algorithm is designed so that it shouldn't take
> time proportional to the repository size, just proportional to the
> number of patches.I set up a kernel repository with 100 applied and 100 unapplied patches:
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git $ cd linux-2.6/ $ stg init $ for ((i=0;i<200;i++)); do stg new p$(printf '%03d' $i) -m "Patch $i"; done $ stg goto p099
Then repeatedly:
$ time stg series >/dev/null
This gives times such as
real 0m0.247s user 0m0.156s sys 0m0.060s
real 0m0.147s user 0m0.088s sys 0m0.036s
real 0m0.153s user 0m0.088s sys 0m0.032s
real 0m0.144s user 0m0.104s sys 0m0.024s
Tab completion also feels like it takes 0.1-0.2 seconds -- which it should, since it's implemented with series, applied, and unapplied, allow which do the same amount of work.
But my kernel repository is _much_ smaller than yours:
$ du -sh .git 183M .git
Do you perchance have a bunch of loose objects in there?
--
Karl Hasselström, kha@treskal.com
www.treskal.com/kalle