Re: [PATCH 2/4] fast-import: define a new option command
- From
Shawn O. Pearce <spearce@spearce.org>
- Date
- Aug 13, 2009, 15:04 UTC
- Message-ID
- <20090813150446.GM1033@spearce.org>
- In-Reply-To
- <alpine.DEB.1.00.0908131652190.7429@intel-tinevez-2-302>
Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
Show 18 quoted lines
> On Thu, 13 Aug 2009, Shawn O. Pearce wrote: > > Sverre Rabbelier <srabbelier@gmail.com> wrote: > > > > > +Note that options specified by the frontend override any options the > > > +user may specify to git fast-import itself. > > > > Hmmph. Do we really want that? I would think the command line options > > should override the stream, such that we can then do something like: > > > > hg fast-export >foo > > git fast-import --export-marks=mymarks <foo > > > > even though 'option export-marks=bar' appears in foo. > > I guess the reason is that this is harder to implement. The problem is > that you _have_ to parse the command line options first. So you need to > record with every option you set that it has been set by the command line, > and must not be overridden by the in-stream options.
It might be easy enough to just save the argv into a global, and reparse the argv immediately before the first non-option command.
Show 6 quoted lines
> OTOH, > > hg fast-export | > sed '1,/^blob/s/^option export-marks=.*$//' > foo > > is relatively easy.
Just for the archives, but that sed expression won't catch inline data under a file command. Its legal for a stream to not use the blob command at all. I guess it would need to be:
hg fast-export | sed '1,/^(blob|commit)/s/^option export-marks=.*$//' > foo
-- Shawn.