зеркало из https://github.com/microsoft/git.git
load_subtree(): fix incorrect comment
This comment was added in851c2b3791
(Teach notes code to properly preserve non-notes in the notes tree, 2010-02-13) when the corresponding code was added. But I believe it was incorrect even then. The condition `path_len != 2` a dozen lines up prevents a path like "dead/beef" from being converted to "de/ad/beef", and indeed the test added in commit851c2b3
verifies that this case works correctly. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
a281639262
Коммит
cbeed9aaa5
24
notes.c
24
notes.c
|
@ -468,23 +468,13 @@ static void load_subtree(struct notes_tree *t, struct leaf_node *subtree,
|
||||||
|
|
||||||
handle_non_note:
|
handle_non_note:
|
||||||
/*
|
/*
|
||||||
* Determine full path for this non-note entry:
|
* Determine full path for this non-note entry. The
|
||||||
* The filename is already found in entry.path, but the
|
* filename is already found in entry.path, but the
|
||||||
* directory part of the path must be deduced from the subtree
|
* directory part of the path must be deduced from the
|
||||||
* containing this entry. We assume here that the overall notes
|
* subtree containing this entry based on our
|
||||||
* tree follows a strict byte-based progressive fanout
|
* knowledge that the overall notes tree follows a
|
||||||
* structure (i.e. using 2/38, 2/2/36, etc. fanouts, and not
|
* strict byte-based progressive fanout structure
|
||||||
* e.g. 4/36 fanout). This means that if a non-note is found at
|
* (i.e. using 2/38, 2/2/36, etc. fanouts).
|
||||||
* path "dead/beef", the following code will register it as
|
|
||||||
* being found on "de/ad/beef".
|
|
||||||
* On the other hand, if you use such non-obvious non-note
|
|
||||||
* paths in the middle of a notes tree, you deserve what's
|
|
||||||
* coming to you ;). Note that for non-notes that are not
|
|
||||||
* SHA1-like at the top level, there will be no problems.
|
|
||||||
*
|
|
||||||
* To conclude, it is strongly advised to make sure non-notes
|
|
||||||
* have at least one non-hex character in the top-level path
|
|
||||||
* component.
|
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
struct strbuf non_note_path = STRBUF_INIT;
|
struct strbuf non_note_path = STRBUF_INIT;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче