From: Shawn O. Pearce Date: Thu, 13 Aug 2009 15:04:46 GMT Subject: Re: [PATCH 2/4] fast-import: define a new option command Message-ID: <20090813150446.GM1033@spearce.org> In-Reply-To: Johannes Schindelin wrote: > On Thu, 13 Aug 2009, Shawn O. Pearce wrote: > > Sverre Rabbelier 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 > > > 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. > 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.