From: Johannes Schindelin Date: Sat, 28 Apr 2018 22:45:21 +0000 (+0200) Subject: technical/shallow: describe why shallow cannot use replace refs X-Git-Tag: v2.18.0-rc0~54^2~1 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/f42fa470b0d87fcb36475f78f2366bba6864895a?hp=--cc technical/shallow: describe why shallow cannot use replace refs It is tempting to do away with commit_graft altogether (in the long haul), now that grafts are deprecated. However, the shallow feature needs a couple of things that the replace refs cannot fulfill. Let's point that out in the documentation. Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- f42fa470b0d87fcb36475f78f2366bba6864895a diff --git a/Documentation/technical/shallow.txt b/Documentation/technical/shallow.txt index 4ec721335d..01dedfe9ff 100644 --- a/Documentation/technical/shallow.txt +++ b/Documentation/technical/shallow.txt @@ -17,6 +17,13 @@ Each line contains exactly one SHA-1. When read, a commit_graft will be constructed, which has nr_parent < 0 to make it easier to discern from user provided grafts. +Note that the shallow feature could not be changed easily to +use replace refs: a commit containing a `mergetag` is not allowed +to be replaced, not even by a root commit. Such a commit can be +made shallow, though. Also, having a `shallow` file explicitly +listing all the commits made shallow makes it a *lot* easier to +do shallow-specific things such as to deepen the history. + Since fsck-objects relies on the library to read the objects, it honours shallow commits automatically.