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

Re: Allowing weak references to blobs and strong references to commits

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Mar 31, 2015, 23:14 UTC
Message-ID
<20150331231449.GF22844@google.com>
In-Reply-To
<20150331223919.GA24362@glandium.org>
Mike Hommey wrote:
> Octopus merges are limited to 16 parents.

The note about this in fast-import is out of date (e.g., see t/t7602-merge-octopus-many.sh and v1.6.0-rc0~194, 2008-06-27). How about this patch?

-- >8--
Subject: fast-import doc: remove suggested 16-parent limit

Merges with an absurd number of parents are still a bad idea because they do not render well in tools like gitk, but if they are present in the repository being imported into git then there's no need to avoid reproducing them faithfully.

In olden times, before v1.6.0-rc0~194 (2008-06-27), git commit-tree and higher-level tools built on top of it were limited to writing 16 parents for a commit. Nowadays normal git operations are happy to write more parents when asked, so the motivation for this note in the fast-import documentation is gone and we can remove it.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
Thanks,
Jonathan
 Documentation/git-fast-import.txt | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/Documentation/git-fast-import.txt b/Documentation/git-fast-import.txt
index f71fb01..773584e 100644
--- a/Documentation/git-fast-import.txt
+++ b/Documentation/git-fast-import.txt
@@ -506,11 +506,8 @@ If the `from` command is
 omitted when creating a new branch, the first `merge` commit will be
 the first ancestor of the current commit, and the branch will start
 out with no files.  An unlimited number of `merge` commands per
-commit are permitted by fast-import, thereby establishing an n-way merge.
-However Git's other tools never create commits with more than 15
-additional ancestors (forming a 16-way merge).  For this reason
-it is suggested that frontends do not use more than 15 `merge`
-commands per commit; 16, if starting a new, empty branch.
+commit are permitted by fast-import and other git commands, thereby
+establishing an n-way merge.
 
 Here `<commit-ish>` is any of the commit specification expressions
 also accepted by `from` (see above).
-- 
2.2.0.rc0.207.ga3a616c
Previous: Junio C HamanoNext: Jonathan Nieder
Message 7 of 10 in “Allowing weak references to blobs and strong references to commits”
  1. Mike HommeyMar 31, 2015
  2. Philip OakleyMar 31, 2015
  3. Randall S. BeckerMar 31, 2015
  4. Junio C HamanoMar 31, 2015
  5. Mike HommeyMar 31, 2015
  6. Junio C HamanoMar 31, 2015
  7. Jonathan NiederMar 31, 2015
  8. Jonathan NiederMar 31, 2015
  9. Junio C HamanoMar 31, 2015
  10. Mike HommeyMar 31, 2015

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.