git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Pierre Habouzit <madcoder@debian.org>
To: Daniel Berlin <dberlin@dberlin.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	Matthieu Moy <Matthieu.Moy@imag.fr>,
	git@vger.kernel.org
Subject: Re: git annotate runs out of memory
Date: Tue, 11 Dec 2007 20:42:38 +0100	[thread overview]
Message-ID: <20071211194238.GD20644@artemis.madism.org> (raw)
In-Reply-To: <4aca3dc20712111124y1d9171eem4d2c4f0872703786@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1893 bytes --]

On Tue, Dec 11, 2007 at 07:24:54PM +0000, Daniel Berlin wrote:
> On 12/11/07, Linus Torvalds <torvalds@linux-foundation.org> wrote:
> >
> >
> > On Tue, 11 Dec 2007, Matthieu Moy wrote:
> > >
> > > I've seen you pointing this kind of examples many times, but is that
> > > really different from what even SVN does? "svn log drivers/char" will
> > > also list atomic commits, and give me a filtered view of the global
> > > log.
> >
> > Ok, BK and CVS both got this horribly wrong, which is why I care. Maybe
> > this is one of the things SVN gets right.
> >
> > I seriously doubt it, though. Do you get *history* right, or do you just
> > get a random list of commits?
> 
> No, it will get actual history (IE not just things that happen to have
> that path in the repository)

OTOH svn has the result right, but the way it does that is horrible.
When you svn log some/path, I think it just (basically) ask svn log for
each file in that directory, and merge the logs together. This is "easy"
for svn since it remembers "where this specific file" came from.

So for svn it's just a matter of merging the individual files histories
together. It may have a more clever implementation, but basically I
believe it would be similar to that in the end.

Of course, if you do something as stupid as:
  svn cp Makefile some/path/foo.c
  # completely rewrite foo.c
  svn commit
then you'll have the history of `Makefile` melded into the
some/path/foo.c svn log, which is completely horribly wrong.

or if you do (which unlike the previous example isn't silly for so
many good reasons):
  cp bar.c foo.c
  svn add foo.c
  svn commit
then foo.c won't have bar.c history in its svn log.

-- 
·O·  Pierre Habouzit
··O                                                madcoder@debian.org
OOO                                                http://www.madism.org

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

  reply	other threads:[~2007-12-11 19:43 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-11 17:33 git annotate runs out of memory Daniel Berlin
2007-12-11 17:47 ` Nicolas Pitre
2007-12-11 17:53   ` Daniel Berlin
2007-12-11 18:01     ` Nicolas Pitre
2007-12-11 18:32 ` Marco Costalba
2007-12-11 19:03   ` Daniel Berlin
2007-12-11 19:14     ` Marco Costalba
2007-12-11 19:27     ` Jason Sewall
2007-12-11 19:46     ` Daniel Barkalow
2007-12-11 20:14       ` Marco Costalba
2007-12-11 18:40 ` Linus Torvalds
2007-12-11 19:01   ` Matthieu Moy
2007-12-11 19:22     ` Linus Torvalds
2007-12-11 19:24       ` Daniel Berlin
2007-12-11 19:42         ` Pierre Habouzit [this message]
2007-12-11 21:09           ` Daniel Berlin
2007-12-11 23:37       ` Matthieu Moy
2007-12-11 23:48         ` Linus Torvalds
2007-12-11 19:06   ` Nicolas Pitre
2007-12-11 20:31     ` Jon Smirl
2007-12-11 19:09   ` Daniel Berlin
2007-12-11 19:26     ` Daniel Barkalow
2007-12-11 19:34     ` Pierre Habouzit
2007-12-11 19:59       ` Junio C Hamano
2007-12-11 19:42     ` Linus Torvalds
2007-12-11 19:50       ` Linus Torvalds
2007-12-11 21:14         ` Daniel Berlin
2007-12-11 21:34           ` Linus Torvalds
2007-12-12  7:57         ` Jeff King
2007-12-17 23:24           ` Jan Hudec
2007-12-18  0:05             ` Linus Torvalds
2007-12-11 21:14       ` Linus Torvalds
2007-12-11 21:54         ` Junio C Hamano
2007-12-11 23:36           ` Linus Torvalds
2007-12-12  0:02             ` Linus Torvalds
2007-12-12  0:22               ` Davide Libenzi
2007-12-12  0:50                 ` Linus Torvalds
2007-12-12  1:12                   ` Davide Libenzi
2007-12-12  2:10                     ` Linus Torvalds
2007-12-12  3:35                       ` Linus Torvalds
2007-12-12  0:56               ` Junio C Hamano
2007-12-12  2:20                 ` Linus Torvalds
2007-12-12  2:39                   ` Linus Torvalds
2007-12-12 19:43               ` Daniel Berlin
2007-12-12  4:48           ` Junio C Hamano
2007-12-11 21:24       ` Daniel Berlin
2007-12-12  3:57       ` Shawn O. Pearce
2007-12-11 20:29     ` Marco Costalba
2007-12-11 19:29   ` Steven Grimm
2007-12-11 20:14     ` Jakub Narebski
2007-12-12 10:36 ` Florian Weimer

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20071211194238.GD20644@artemis.madism.org \
    --to=madcoder@debian.org \
    --cc=Matthieu.Moy@imag.fr \
    --cc=dberlin@dberlin.org \
    --cc=git@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).