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

Shallow clones with explicit history cutoff?

From
Matthias Urlichs <matthias@urlichs.de>
Date
Aug 21, 2014, 15:39 UTC
Message-ID
<loom.20140821T171416-31@post.gmane.org>
Hi,

use case: I am packaging the FOO program for Debian. FOO is maintained in git but it has a bunch of problems (e.g. because somebody mistakenly checked in a huge blob which would give the ).

The current workflow for this is to create a new branch, remove the offending bits if necessary, create a FOO-clean.tar.xz file, and ship that as "original source". I find that to be suboptimal.

What I would like to have, instead, is a version of shallow cloning which cuts off not at a pre-determined depth, but at a given branch (or set of branches). In other words, given

            +-J--K  (packaged)
           /    /
  +-F--G--H----I    (clean)
 /       /
A---B---C---D---E   (upstream)

a command "git clone --shallow-until upstream $REPO" (or however that would be named) would create a shallow git archive which contains branches packaged+clean, with commits FGHIJK. In contrast, with --single-branch and --depth 4 I would get CGHIJK, which isn't what I'd want.

As I have not spent too much time with the git sources lately (as in "None at all"), some pointers where to start implementing this would be appreciated, assuming (a) this has a reasonable chance of landing in git and (b) nobody beats me to it. ;-)

-- 
-- Matthias Urlichs
Next: Duy Nguyen
Message 1 of 3 in “Shallow clones with explicit history cutoff?”
  1. Matthias UrlichsAug 21, 2014
  2. Duy NguyenAug 22, 2014
  3. Matthias UrlichsAug 22, 2014

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.