git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: incremental fast-import

From
Shawn O. Pearce <spearce@spearce.org>
Date
Jul 27, 2007, 00:51 UTC
Message-ID
<20070727005103.GC20052@spearce.org>
In-Reply-To
<Pine.LNX.4.64.0707262242460.14017@beast.quantumfyre.co.uk>
Julian Phillips <julian@quantumfyre.co.uk> wrote:
Show 15 quoted lines
> I seem to be missing something though.  I can't seem to get it to work 
> when run in an incremental manner.
> 
> I have a saved stream of fast-import commands.  Every time I run this 
> through fast import I get the exact same marks file out.  This is good.
> 
> However if I feed it in in two chunks, then nearly all of the SHA1s 
> generated in the second run are different to those produced in a single 
> pass.  In addition I get a pair of "warning: Not updating 
> refs/heads/BUG_101_BRANCH (new tip <some sha1> does not contain <other 
> sha1>)" messages.  This is not so good.
> 
> I'm using the --import-marks and --export-marks options.  Is there 
> something else I need to do to be able to run fast-import in an 
> incremental manner?

I'm guessing you didn't restart the branches at the start of the second import. You need to do something like this to get the import going again:

  commit refs/heads/BUG_101_BRANCH
  from refs/heads/BUG_101_BRANCH^0
  ...
or because you imported the marks you can use a mark:
  commit refs/heads/BUG_101_BRANCH
  from :18981
  ...

where 18981 was the last revision on BUG_101_BRANCH that the frontend had imported during the last run.

fast-import doesn't assume the local branches already exist. It actually assumes its importing from scratch every time. The frontend tool needs to restart the branch if that is what it wants.

In other words, by splitting the file in half you actually also split the history in half, and got two root commits, one of which was in the middle of your history. :-(

-- 
Shawn.
Previous: Julian PhillipsNext: Simon 'corecode' Schubert
Message 2 of 3 in “incremental fast-import”
  1. Julian PhillipsJul 26, 2007
  2. Shawn O. PearceJul 27, 2007
  3. Simon 'corecode' SchubertJul 27, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.