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

Re: gitpacker progress report and a question

From
Eric S. Raymond <esr@thyrsus.com>
Date
Nov 26, 2012, 23:43 UTC
Message-ID
<20121126234359.GA8042@thyrsus.com>
In-Reply-To
<CAMP44s2+NDyL2Vf=iKR09f-YUnp=G2BCiYj-+qKuP7JA-+YkmQ@mail.gmail.com>
Felipe Contreras <felipe.contreras@gmail.com>:
> Might be easier to just call 'git ls-files --with-three foo', but I
> don't see the point of those calls:

Ah, much is now explained. You were looking at an old version. I had in fact already fixed the subdirectories bug (I've updated my regression test to check) and have full support for branchy repos, preserving tags and branch heads.

Show 5 quoted lines
> > It doesn't issue delete ops.
> 
> What do you mean?
> 
>     out.puts 'deleteall' <- All current files are removed
Yours emits no D ops for files removed after a particular snapshot.
Show 7 quoted lines
> > Be aware, however, that I consider easy editability by human beings
> > much more important than squeezing the last microsecond out of the
> > processing time.  So, for example, I won't use data byte counts rather
> > than end delimiters, the way import streams do.
> 
> Well, if there's a line with a single dot in the commit message ('.'),
> things would go very bad.
Apparently you missed the part where I byte-stuffed the message content.
It's a technique used in a lot of old-school Internet protocols, notably
in SMTP.
 
> Personally I would prefer something like this:
There's a certain elegance to that, but it would be hard to generate by hand.

Remember that a major use case for this tool is making repositories from projects whose back history exists only as tarballs. So, let's say you have the following:

foo-1.1.tar.gz foo-1.2.tar.gz foo-1.3.tar.gz

What you're going to do before weaving is drop the untarred file trees in a 'foo' scratch directory, then hand-craft a log file that might look a bit like this:

----------------------------------- commit 1 directory foo-1.1

Release 1.1 of project foo . commit 2 directory foo-1.2

..This is an example of a byte-stuffed line.

Release 1.2 of project foo . commit 3 directory foo-1.3

Release 1.3 of project foo . -----------------------------------

The main objective of the logfile design is to make hand-crafting these easy.

-- 
		<a href="http://www.catb.org/~esr/">Eric S. Raymond</a>
Previous: Felipe ContrerasNext: Felipe Contreras
Message 8 of 16 in “gitpacker progress report and a question”
  1. Eric S. RaymondNov 15, 2012
  2. Max HornNov 15, 2012
  3. Eric S. RaymondNov 15, 2012
  4. Andreas SchwabNov 16, 2012
  5. Felipe ContrerasNov 26, 2012
  6. Eric S. RaymondNov 26, 2012
  7. Felipe ContrerasNov 26, 2012
  8. Eric S. RaymondNov 26, 2012
  9. Felipe ContrerasNov 27, 2012
  10. Felipe ContrerasNov 27, 2012
  11. Felipe ContrerasNov 27, 2012
  12. Eric S. RaymondNov 27, 2012
  13. Felipe ContrerasNov 27, 2012
  14. Eric S. RaymondNov 27, 2012
  15. Felipe ContrerasNov 27, 2012
  16. Eric S. RaymondNov 27, 2012

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.