All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <junkio@cox.net>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: git@vger.kernel.org
Subject: Re: [PATCH 3/3] Make clear_commit_marks() clean harder
Date: Tue, 04 Jul 2006 01:20:12 -0700	[thread overview]
Message-ID: <7vlkr9kchv.fsf@assigned-by-dhcp.cox.net> (raw)
In-Reply-To: <Pine.LNX.4.63.0607040951390.29667@wbgn013.biozentrum.uni-wuerzburg.de> (Johannes Schindelin's message of "Tue, 4 Jul 2006 09:53:36 +0200 (CEST)")

Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:

>> If we didn't mark them, then clearing them would be a no-op, so nobody 
>> really cares.
>
> My point being: if we try to clear commits we could not have possibly 
> marked, because they were not yet parsed, this is wrong.

While you say above is correct, object.parsed bit does not give
you enough information to decide if we could not have possibly
marked or not, because it is perfectly valid to mark a commit
that we have not parsed.

As Linus said in this thread already (I am rephrasing):

 - When you have a commit object, which is parsed, you can tell
   who its parents are; more importantly, at that point you have
   access to the commit objects for the parents already, but they
   may not have been parsed.

 - If you can make a decision whether the parents of a commit
   should be marked or not solely by looking at the commit, you
   are allowed to do so before parsing these parents.  The
   commit you look at to make that decision has to be parsed for
   you to know who the parents are, though.

Marking unparsed objects is a valid operation because even
unparsed objects have flags field that is retained when they are
later lazily parsed.

Right now, in the inner loop of the main loop of merge_base()
code, we parse each parent and insert it into the &list, but
instead we could parse commit (if not parsed yet) just before
taking its parents list in the outer loop.  That way we would
parse the parents lazily and will have commits marked but still
not parsed.

  reply	other threads:[~2006-07-04  8:20 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-07-01  2:44 A note on merging conflicts Linus Torvalds
2006-07-01  3:08 ` Junio C Hamano
2006-07-01  3:54   ` Linus Torvalds
2006-07-01  3:59     ` Linus Torvalds
2006-07-01 15:09     ` Rene Scharfe
2006-07-01 15:23       ` Johannes Schindelin
2006-07-01 16:25       ` Linus Torvalds
2006-07-01 18:13         ` Rene Scharfe
2006-07-01 18:01       ` J. Bruce Fields
2006-07-01 18:20         ` Linus Torvalds
2006-07-01 22:24           ` Daniel Barkalow
2006-07-01 22:57             ` Linus Torvalds
2006-07-01 23:25               ` Daniel Barkalow
2006-07-01 23:45                 ` Daniel Barkalow
2006-07-02 11:31                   ` Rene Scharfe
2006-07-02 21:42                     ` Daniel Barkalow
2006-07-02  0:08                 ` Linus Torvalds
2006-07-01 18:22         ` Jakub Narebski
2006-07-01 18:52           ` Linus Torvalds
2006-07-01 18:37       ` Junio C Hamano
2006-07-01 19:29         ` Rene Scharfe
2006-07-01 19:56           ` Junio C Hamano
2006-07-01 23:01             ` Johannes Schindelin
2006-07-01 20:04           ` Linus Torvalds
2006-07-01 20:07             ` Junio C Hamano
2006-07-01 20:14               ` Junio C Hamano
2006-07-01 23:29                 ` [PATCH 1/3] Add get_merge_bases_clean() Rene Scharfe
2006-07-01 23:43                   ` Johannes Schindelin
2006-07-01 23:29                 ` [PATCH 2/3] Add '...' operator for revisions Rene Scharfe
2006-07-01 23:29                 ` [PATCH 3/3] Make clear_commit_marks() clean harder Rene Scharfe
2006-07-03  9:32                   ` Junio C Hamano
2006-07-03 13:56                     ` Johannes Schindelin
2006-07-03 17:05                       ` Linus Torvalds
2006-07-03 21:08                         ` Johannes Schindelin
2006-07-03 19:47                       ` Junio C Hamano
2006-07-03 21:12                         ` Johannes Schindelin
2006-07-03 22:55                           ` Linus Torvalds
2006-07-04  7:53                             ` Johannes Schindelin
2006-07-04  8:20                               ` Junio C Hamano [this message]
2006-07-02  9:49                 ` [PATCH 4/3] Fold get_merge_bases_clean() into get_merge_bases() Rene Scharfe
2006-07-02  9:56                   ` Johannes Schindelin
2006-07-02 16:43                   ` Linus Torvalds
2006-07-02 17:40                     ` Rene Scharfe
2006-07-02 18:28                       ` Junio C Hamano
2006-07-02 20:59                         ` Rene Scharfe
2006-07-02 21:15                           ` Rene Scharfe
2006-07-02 21:17                           ` Linus Torvalds
2006-07-02 20:44                       ` Linus Torvalds
2006-07-07  8:26 ` A note on merging conflicts Junio C Hamano

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=7vlkr9kchv.fsf@assigned-by-dhcp.cox.net \
    --to=junkio@cox.net \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.