summaryrefslogtreecommitdiff
path: root/Documentation/technical
diff options
context:
space:
mode:
authorJohannes Schindelin <johannes.schindelin@gmx.de>2018-04-28 22:45:21 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-04-30 02:12:31 (GMT)
commitf42fa470b0d87fcb36475f78f2366bba6864895a (patch)
tree0d7b4d6b09c0092dc1bd01ae1635084ec199940a /Documentation/technical
parent8d0d81a9caf612b479b96bc474815e2f38c4746b (diff)
downloadgit-f42fa470b0d87fcb36475f78f2366bba6864895a.zip
git-f42fa470b0d87fcb36475f78f2366bba6864895a.tar.gz
git-f42fa470b0d87fcb36475f78f2366bba6864895a.tar.bz2
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 <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'Documentation/technical')
-rw-r--r--Documentation/technical/shallow.txt7
1 files changed, 7 insertions, 0 deletions
diff --git a/Documentation/technical/shallow.txt b/Documentation/technical/shallow.txt
index 4ec7213..01dedfe 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.