Re: stgit 0.13 import mbox problems
- From
- Catalin Marinas <catalin.marinas@gmail.com>
- Date
- Aug 23, 2007, 20:48 UTC
- Message-ID
- <b0943d9e0708231348o28d870fem656330f89f248578@mail.gmail.com>
- In-Reply-To
- <20070823204202.GA10644@filer.fsl.cs.sunysb.edu>
On 23/08/07, Josef Sipek <jsipek@fsl.cs.sunysb.edu> wrote:
Show 15 quoted lines
> On Thu, Aug 23, 2007 at 09:36:05PM +0100, Catalin Marinas wrote:
> > On 23/08/07, Josef Sipek <jsipek@fsl.cs.sunysb.edu> wrote:
> > > Yep. Two different projects taking different approaches to storing the
> > > patches. I go with the plaintext diff approach ala quilt, while stgit uses
> > > git objects to store the data.
> >
> > But guilt also generates a commit object when pushing a patch. Or am I wrong?
>
> That's correct. But the git commit/tree/blob objects are a mere cache. For
> example, a refresh consists of:
>
> git-update-index ...
> git-diff HEAD^ > patchfile
> git-reset --hard HEAD^
> <internal push patch function - uses git-apply, git-{write,commit}-tree>StGIT does a "git-diff | git-apply" during push as an optimisation. Guilt moved the diff to the 'refresh' command. It might be a good idea as the delay during 'push' is much more visible.
As I said in the past, the difference I see is that StGIT performs three-way merging if simple git-apply fails, with the possibility (configurable) of automatically starting a three-way merge tool like xxdiff or emacs. Guilt could probably be modified but this information needed for the three-way merge might be lost with text-only patches.
The rest is some extra functionality, StGIT being around for longer (actually I think two months younger than the first official GIT announcement).
-- Catalin