git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Felipe Contreras <felipe.contreras@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Johannes Schindelin <Johannes.Schindelin@gmx.de>,
	Jeff King <peff@peff.net>, Jonathan Nieder <jrnieder@gmail.com>,
	git@vger.kernel.org, Max Horn <max@quendi.de>,
	Sverre Rabbelier <srabbelier@gmail.com>,
	Brandon Casey <drafnel@gmail.com>,
	Brandon Casey <casey@nrlssc.navy.mil>,
	Ilari Liusvaara <ilari.liusvaara@elisanet.fi>,
	Pete Wyckoff <pw@padd.com>, Ben Walton <bdwalton@gmail.com>,
	Matthieu Moy <Matthieu.Moy@imag.fr>,
	Julian Phillips <julian@quantumfyre.co.uk>
Subject: Re: [PATCH v5 15/15] fast-export: don't handle uninteresting refs
Date: Mon, 26 Nov 2012 20:23:45 +0100	[thread overview]
Message-ID: <CAMP44s3tnK+uc0YEEq=Q=2nOoFrkc1ooNPcHMShtcXzpxXhRfQ@mail.gmail.com> (raw)
In-Reply-To: <7vd2z0tfhz.fsf@alter.siamese.dyndns.org>

On Mon, Nov 26, 2012 at 6:56 PM, Junio C Hamano <gitster@pobox.com> wrote:
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>
>> If you changed your stance on the patch Sverre and I sent to fix this, we
>> could get a non-partial fix for this.
>
> This is long time ago so I may be misremembering the details, but I
> thought the original patch was (ab)using object flags to mark "this
> was explicitly asked for, even though some other range operation may
> have marked it uninteresting".  Because it predated the introduction
> of the rev_cmdline_info mechanism to record what was mentioned on
> the command line separately from what objects are uninteresting
> (i.e. object flags), it may have been one convenient way to record
> this information, but it still looked unnecessarily ugly hack to me,
> in that it allocated scarce object flag bits to represent a narrow
> special case (iirc, only a freestanding "A" on the command line but
> not "A" spelled in "B..A", or something), making it more expensive
> to record other kinds of command line information in a way
> consistent with the approach chosen (we do not want to waste object
> flag bits in order to record "this was right hand side tip of the
> symmetric difference range" and such).
>
> If you are calling "do not waste object flags to represent one
> special case among endless number of possibilities, as it will make
> it impossible to extend it" my stance, that hasn't changed.

The problem with those patches is that they were doing many things at
the same time.

You are correct that one of the problems being solved was the fact
that we wanted to differentiate B from A in B..A independently of the
object, because it might have been referenced by ^C. My latest patch
series deals with that by using rev cmdline_info.

But there's another problem that series tried to fix: weather or not A
was exported by fast-export, which is not strictly the same as SHOWN.

This becomes a non-issue if my patch series is applied because it
properly identifies when an object has been marked or not. But it's
not when marks are not used.

For example:

% git branch A v1
% git branch B v0
% git branch C v0
% git branch D v1
% git fast-export B..A ^C D

A would be updated through a 'commit refs/heads/A' command, D would be
updated through 'reset refs/heads/D'.

But what if C points to v1? The code will assume A will be exported,
and it will be skipped, and there will be only one reset: 'reset
refs/heads/D'. Either way it doesn't matter, because the reset would
be to mark :0, so even if there was a 'reset refs/heads/A' (because A
was never exported), a mark :0 would be useless.

When marks are used my patch fixes the problem because it doesn't care
if A was exporeted or not; by knowing it was marked, it knows it was
never intended to be exported, so we get resets for both A and D, with
real marks.

> We added rev_cmdline_info since then so that we can tell what refs
> were given from the command line in what way, and I thought that we
> applied a patch from Sverre that uses it instead of the object
> flags.  Am I misremembering things?

No, the patch from Sverre was never merged.

-- 
Felipe Contreras

  reply	other threads:[~2012-11-26 19:24 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-11 13:59 [PATCH v5 00/15] fast-export and remote-testgit improvements Felipe Contreras
2012-11-11 13:59 ` [PATCH v5 01/15] fast-export: avoid importing blob marks Felipe Contreras
2012-11-11 16:36   ` Torsten Bögershausen
2012-11-11 16:38     ` Jeff King
2012-11-12 17:44       ` Junio C Hamano
2012-11-11 17:53     ` Felipe Contreras
2012-11-11 13:59 ` [PATCH v5 02/15] remote-testgit: fix direction of marks Felipe Contreras
2012-11-11 20:39   ` Max Horn
2012-11-11 13:59 ` [PATCH v5 03/15] remote-helpers: fix failure message Felipe Contreras
2012-11-11 13:59 ` [PATCH v5 04/15] Rename git-remote-testgit to git-remote-testpy Felipe Contreras
2012-11-11 13:59 ` [PATCH v5 05/15] Add new simplified git-remote-testgit Felipe Contreras
2012-11-11 20:40   ` Max Horn
2012-11-21 18:26   ` Junio C Hamano
2012-11-21 23:39     ` Felipe Contreras
2012-11-11 13:59 ` [PATCH v5 06/15] remote-testgit: get rid of non-local functionality Felipe Contreras
2012-11-21 18:26   ` Junio C Hamano
2012-11-21 23:44     ` Felipe Contreras
2012-11-11 13:59 ` [PATCH v5 07/15] remote-testgit: remove irrelevant test Felipe Contreras
2012-11-11 13:59 ` [PATCH v5 08/15] remote-testgit: cleanup tests Felipe Contreras
2012-11-21 18:28   ` Junio C Hamano
2012-11-22  0:55     ` Felipe Contreras
2012-11-11 13:59 ` [PATCH v5 09/15] remote-testgit: exercise more features Felipe Contreras
2012-11-21 18:26   ` Junio C Hamano
2012-11-21 23:35     ` Felipe Contreras
2012-11-11 13:59 ` [PATCH v5 10/15] remote-testgit: report success after an import Felipe Contreras
2012-11-11 13:59 ` [PATCH v5 11/15] remote-testgit: make clear the 'done' feature Felipe Contreras
2012-11-11 20:49   ` Max Horn
2012-11-11 21:22     ` Felipe Contreras
2012-11-12 11:20       ` Max Horn
2012-11-12 15:45         ` Jonathan Nieder
2012-11-12 16:40           ` Felipe Contreras
2012-11-21 18:11         ` Junio C Hamano
2012-11-21 19:20           ` Sverre Rabbelier
2012-11-11 13:59 ` [PATCH v5 12/15] fast-export: trivial cleanup Felipe Contreras
2012-11-11 13:59 ` [PATCH v5 13/15] fast-export: fix comparison in tests Felipe Contreras
2012-11-11 13:59 ` [PATCH v5 14/15] fast-export: make sure updated refs get updated Felipe Contreras
2012-11-11 20:43   ` Max Horn
2012-11-21 18:12     ` Junio C Hamano
2012-11-11 13:59 ` [PATCH v5 15/15] fast-export: don't handle uninteresting refs Felipe Contreras
2012-11-12 16:28   ` Felipe Contreras
2012-11-20 22:43     ` Junio C Hamano
2012-11-21  3:03       ` Felipe Contreras
2012-11-21  4:17       ` Jonathan Nieder
2012-11-21  4:22         ` Felipe Contreras
2012-11-21  5:08         ` Junio C Hamano
2012-11-21  7:11           ` Felipe Contreras
2012-11-21  8:37           ` Felipe Contreras
2012-11-21 19:48           ` Jeff King
2012-11-22  0:28             ` Felipe Contreras
2012-11-26  5:35               ` Junio C Hamano
2012-11-26 12:16                 ` Felipe Contreras
2012-11-26 16:28                 ` Johannes Schindelin
2012-11-26 17:56                   ` Junio C Hamano
2012-11-26 19:23                     ` Felipe Contreras [this message]
2012-11-26 19:26                     ` Johannes Schindelin
2012-11-26 21:46                       ` Sverre Rabbelier
2012-11-26 22:22                         ` Junio C Hamano
2012-11-21 22:30           ` Max Horn
2012-11-22  0:38             ` Felipe Contreras
2012-11-21 18:14   ` Junio C Hamano
2012-11-22  0:15     ` Felipe Contreras
2012-11-24  3:12   ` Felipe Contreras
2012-11-21  9:46 ` [PATCH v5 00/15] fast-export and remote-testgit improvements Felipe Contreras
2012-11-21 19:05   ` Junio C Hamano
2012-11-22  0:51     ` Felipe Contreras

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

  List information: http://vger.kernel.org/majordomo-info.html

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

  git send-email \
    --in-reply-to='CAMP44s3tnK+uc0YEEq=Q=2nOoFrkc1ooNPcHMShtcXzpxXhRfQ@mail.gmail.com' \
    --to=felipe.contreras@gmail.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=Matthieu.Moy@imag.fr \
    --cc=bdwalton@gmail.com \
    --cc=casey@nrlssc.navy.mil \
    --cc=drafnel@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=ilari.liusvaara@elisanet.fi \
    --cc=jrnieder@gmail.com \
    --cc=julian@quantumfyre.co.uk \
    --cc=max@quendi.de \
    --cc=peff@peff.net \
    --cc=pw@padd.com \
    --cc=srabbelier@gmail.com \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).