git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [StGit PATCH 2/2] Write to a stack log when stack is modified

From
Karl Hasselström <kha@treskal.com>
Date
Feb 21, 2008, 07:18 UTC
Message-ID
<20080221071819.GA8250@diana.vm.bytemark.co.uk>
In-Reply-To
<b0943d9e0802201446g2840c3d9v576f840936253525@mail.gmail.com>
On 2008-02-20 22:46:48 +0000, Catalin Marinas wrote:
Show 8 quoted lines
> On 14/02/2008, Karl Hasselström <kha@treskal.com> wrote:
>
> > Create a log branch (called <branchname>.stgit) for each StGit
> > branch, and write to it whenever the stack is modified.
>
> The abstractions are really nice (and I still wonder how StGIT
> codebase increased that much when all I needed two years ago was a
> simple script-like application to reorder commits :-)).

:-) I'll take some of the blame, but StGit was quite large already when I started submitting patches to it.

Show 6 quoted lines
> Anyway, I don't really like the idea of an additional commit (I
> don't even like the old patch log implementation) when the stack is
> modified. It needs some profiling but it has a visible impact on
> stacks with a big number of patches (my last kernel release at
> www.linux-arm.org/git had 80 patches and it takes a lot of time to
> push them).

One thing to remember is that my patch stack log gets one new commit per StGit operation, not one per changed patch. So if you push 80 patches with one command, that will give you just one commit on the log. (If someone makes a scripts that calls push 80 times this won't help, of course.)

> Can we not use some of the automatic reflog recording that GIT does
> instead of writing a commit? It's cheaper to write a text file than
> generating a commit.

As I said, I'm not convinced that it's a huge difference when you have just one log commit per operation, not one per changed patch. But let's stop arguing about it until I have some numbers to back my claim up. ;-)

> In my kernel repository I have several branches with many patches
> and, even after "git gc" and repacking, it is still slow (mainly
> because of git-read-tree but I'd like to reduce the number of calls
> to GIT).

When you say "it's still slow", are you referring to the existing per-patch log, my per-branch log, or just StGit in general?

Have you noticed any difference between commands using the old and new infrastructure (say, stg push vs. stg goto)? The latter should be taking less time, due to touching the worktree only when necessary.

-- 
Karl Hasselström, kha@treskal.com
      www.treskal.com/kalle
Previous: Catalin MarinasNext: Catalin Marinas
Message 5 of 8 in “Patch stack logging”
  1. 0/2 Patch stack loggingKarl Hasselström, Feb 14, 2008
  2. 1/2 Library functions for tree and blob manipulationKarl Hasselström, Feb 14, 2008
  3. 2/2 Write to a stack log when stack is modifiedKarl Hasselström, Feb 14, 2008
  4. Catalin MarinasFeb 20, 2008
  5. Karl HasselströmFeb 21, 2008
  6. Catalin MarinasFeb 22, 2008
  7. Karl HasselströmFeb 22, 2008
  8. Catalin MarinasFeb 22, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.