traverse_trees_and_blobs: rename and tree-wide
cover traverse_trees_and_blobs: rename and tree-wide
Teng Long (1):
list-objects.c: traverse_trees_and_blobs: rename and tree-wide
list-objects.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
Signature · 1 line
2.32.0.dirty
PATCH 1/1 list-objects.c: traverse_trees_and_blobs: rename and tree-wide
Function traverse_trees_and_blobs not only works on trees and blobs, but also on tags, the function name is somewhat misleading. This commit rename it to traverse_trees_and_blobs_and_tags.
--- list-objects.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
list-objects.c +3 -3
@@ -334,7 +334,7 @@ static void add_pending_tree(struct rev_info *revs, struct tree *tree)add_pending_object (revs, &tree->object,"" ); } -static void traverse_trees_and_blobs (struct traversal_context *ctx, +static void traverse_trees_and_blobs_and_tags (struct traversal_context *ctx,struct strbuf *base) {int i;
@@ -407,9 +407,9 @@ static void do_traverse(struct traversal_context *ctx)* needs a reallocation for each commit. Can we pass the * tree directory without allocation churn? */ -traverse_trees_and_blobs (ctx, &csp); +traverse_trees_and_blobs_and_tags (ctx, &csp); } -traverse_trees_and_blobs (ctx, &csp); +traverse_trees_and_blobs_and_tags (ctx, &csp);strbuf_release (&csp); }
Signature · 1 line
2.32.0.dirty
Re: [PATCH v1 1/1] list-objects.c: traverse_trees_and_blobs: rename and tree-wide
Quoted 1 line · Teng Long
Subject: Re: [PATCH v1 1/1]
list-objects.c:traverse_trees_and_blobs: rename and tree-wide
Sorry but I do not quite get the " and tree-wide" part of the title.
Quoted 3 lines
Function
traverse_trees_and_blobsnot only works on trees and blobs, but also on tags, the function name is somewhat misleading. This commit rename it totraverse_trees_and_blobs_and_tags.
This looks pretty much "Meh" to me.
The current name might mislead people that we are limited to only two types, but I doubt the risk of misleading is worth reducing with such an overly long name. The original is long enough X-<.
When we introduced it at 91904f56 (list-objects.c: factor out traverse_trees_and_blobs, 2017-11-02), we may have been better to call it traverse_non_commits(). The idea of traverse_commit_list(), which is its primary caller, is for its main loop to iterate over commits and process them one by one in each iteration, and process objects of other types discovered therein by calling this function once per each commit [*1*].
s/trees_and_blobs/non_commits/ will result in a name that is much shorter and to the point, I think.
[Footnote]
*1* The call to it at the end is meant to sweep anything leftover---we will not discover any tag while in the main loop of the caller that iterates over commits (as they cannot contain any tag in there).
Quoted 29 lines
Signed-off-by Teng Long <[email protected]>--- list-objects.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)list-objects.c +3
-3@@ -334,7 +334,7 @@ static void add_pending_tree(struct rev_info *revs, struct tree *tree)add_pending_object (revs, &tree->object,"" ); } -static void traverse_trees_and_blobs (struct traversal_context *ctx, +static void traverse_trees_and_blobs_and_tags (struct traversal_context *ctx,struct strbuf *base) {int i;@@ -407,9 +407,9 @@ static void do_traverse(struct traversal_context *ctx)* needs a reallocation for each commit. Can we pass the * tree directory without allocation churn? */ -traverse_trees_and_blobs (ctx, &csp); +traverse_trees_and_blobs_and_tags (ctx, &csp); } -traverse_trees_and_blobs (ctx, &csp); +traverse_trees_and_blobs_and_tags (ctx, &csp);strbuf_release (&csp); }
Re: [PATCH v1 1/1] list-objects.c: traverse_trees_and_blobs: rename and tree-wide
Quoted 18 lines · Junio C Hamano
Quoted 3 lines
Function
traverse_trees_and_blobsnot only works on trees and blobs, but also on tags, the function name is somewhat misleading. This commit rename it totraverse_trees_and_blobs_and_tags.This looks pretty much "Meh" to me.
The current name might mislead people that we are limited to only two types, but I doubt the risk of misleading is worth reducing with such an overly long name. The original is long enough X-<.
When we introduced it at
91904f56(list-objects.c: factor outtraverse_trees_and_blobs, 2017-11-02), we may have been better to call ittraverse_non_commits(). The idea oftraverse_commit_list(), which is its primary caller, is for its main loop to iterate over commits and process them one by one in each iteration, and process objects of other types discovered therein by calling this function once per each commit [*1*].
Quoted 2 lines
s/trees_and_blobs/non_commits/ will result in a name that is much shorter and to the point, I think.
FWIW, I was about reply and suggest the exact same name. :)
As something internal to list-objects.c, I don't think it matters all that much either way. The name "traverse_commit_list()" is IMHO more likely to confuse. It is public within the project, and of course traverses any type of object. So "traverse_objects()" or something may be more accurate.
OTOH I do not find it all that confusing, and it may not be worth the disruption to the code base.
-Peff
Re: [PATCH v1 1/1] list-objects.c: traverse_trees_and_blobs: rename and tree-wide
Quoted 7 lines
Quoted 7 lines
FWIW, I was about reply and suggest the exact same name. :)
As something internal to
list-objects.c, I don't think it matters all that much either way. The name "traverse_commit_list()" is IMHO more likely to confuse. It is public within the project, and of course traverses any type of object. So "traverse_objects()" or something may be more accurate.
On the basis of understanding the relationship between git objects, traverse_commit_list is understandable, for me.
Quoted 2 lines
Quoted 2 lines
OTOH I do not find it all that confusing, and it may not be worth the disruption to the code base.
Agree.
It’s interesting to read your reply, because of learning a lot of abbreviations.
Thank you.
Re: [PATCH v1 1/1] list-objects.c: traverse_trees_and_blobs: rename and tree-wide
In reply to Junio C HamanoQuoted 1 line
Quoted 1 line
Sorry but I do not quite get the " and tree-wide" part of the title.
I may have some misunderstandings about "tree-wide". Sorry, it will be resolved in the next patch.
Quoted 2 lines
Quoted 2 lines
s/trees_and_blobs/non_commits/ will result in a name that is much shorter and to the point, I think.
Agree and thanks for explanation.
Will follow your suggestion in next patch.
I don't know why I didn't think of this naming at the time (*headwalls*).
In fact, I discovered this problem while contributing packfile-uris related features (thinking about excluding tag objects), and finally said to myself "So you are here" (although it didn't take so much effort), So I decide to make this patch.
Quoted 4 lines
Quoted 4 lines
The call to it at the end is meant to sweep anything leftover---we will not discover any tag while in the main loop of the caller that iterates over commits (as they cannot contain any tag in there).
Some doubts.
I think at the object relationship level: tag> commit> tree> blob
The tag is on top because of the annotated tag. So, why the tag is in revs->pending to deal? I understand it should be the opposite? A commit should pending to a tag, at least equal.
Maybe my understanding is wrong, if so, why this way?
Thank you.
v2 cover list-objects.c: rename "traverse_trees_and_blobs" to "traverse_non_commits"
In reply to Teng LongTeng Long (1):
list-objects.c: rename "traverse_trees_and_blobs" to
"traverse_non_commits"
list-objects.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
Range-diff against v1:
1: b6f3b15253 ! 1: 2d19f0901c list-objects.c: traverse_trees_and_blobs: rename and tree-wide
@@ Metadata
Author: Teng Long <[email protected]>
## Commit message ##
- list-objects.c: traverse_trees_and_blobs: rename and tree-wide
+ list-objects.c: rename "traverse_trees_and_blobs" to "traverse_non_commits"
Function traverse_trees_and_blobs not only works on trees and blobs, but also on tags, the function name is somewhat misleading. This commit
- rename it to traverse_trees_and_blobs_and_tags.
+ rename it to traverse_non_commits.
@@ list-objects.c: static void add_pending_tree(struct rev_info *revs, struct tree
}
-static void traverse_trees_and_blobs(struct traversal_context *ctx,
-+static void traverse_trees_and_blobs_and_tags(struct traversal_context *ctx, ++static void traverse_non_commits(struct traversal_context *ctx,
struct strbuf *base)
{
int i;
@@ list-objects.c: static void do_traverse(struct traversal_context *ctx)
* tree directory without allocation churn? */
- traverse_trees_and_blobs(ctx, &csp);
-+ traverse_trees_and_blobs_and_tags(ctx, &csp);
++ traverse_non_commits(ctx, &csp);
}
- traverse_trees_and_blobs(ctx, &csp);
-+ traverse_trees_and_blobs_and_tags(ctx, &csp);
++ traverse_non_commits(ctx, &csp);
strbuf_release(&csp);
}
Signature · 1 line
2.32.0.1.g4c9ac18d93.dirty
PATCH v2 1/1 list-objects.c: rename "traverse_trees_and_blobs" to "traverse_non_commits"
Function traverse_trees_and_blobs not only works on trees and blobs, but also on tags, the function name is somewhat misleading. This commit rename it to traverse_non_commits.
--- list-objects.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
list-objects.c +3 -3
@@ -334,7 +334,7 @@ static void add_pending_tree(struct rev_info *revs, struct tree *tree)add_pending_object (revs, &tree->object,"" ); } -static void traverse_trees_and_blobs (struct traversal_context *ctx, +static void traverse_non_commits (struct traversal_context *ctx,struct strbuf *base) {int i;
@@ -407,9 +407,9 @@ static void do_traverse(struct traversal_context *ctx)* needs a reallocation for each commit. Can we pass the * tree directory without allocation churn? */ -traverse_trees_and_blobs (ctx, &csp); +traverse_non_commits (ctx, &csp); } -traverse_trees_and_blobs (ctx, &csp); +traverse_non_commits (ctx, &csp);strbuf_release (&csp); }
Signature · 1 line
2.32.0.1.g4c9ac18d93.dirty
v3 cover list-objects.c: rename "traverse_trees_and_blobs" to "traverse_non_commits"
In reply to Teng LongPatch-v3 fix the indent problem in v2.
Teng Long (1):
list-objects.c: rename "traverse_trees_and_blobs" to
"traverse_non_commits"
list-objects.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
Range-diff against v2:
1: 2d19f0901c ! 1: 8548aa8bb1 list-objects.c: rename "traverse_trees_and_blobs" to "traverse_non_commits"
@@ list-objects.c: static void add_pending_tree(struct rev_info *revs, struct tree
}
-static void traverse_trees_and_blobs(struct traversal_context *ctx,
+- struct strbuf *base)
+static void traverse_non_commits(struct traversal_context *ctx,
- struct strbuf *base)
++ struct strbuf *base)
{
int i;
+
@@ list-objects.c: static void do_traverse(struct traversal_context *ctx)
* needs a reallocation for each commit. Can we pass the
* tree directory without allocation churn?
Signature · 1 line
2.32.0.1.g4c9ac18d93.dirty
PATCH v3 1/1 list-objects.c: rename "traverse_trees_and_blobs" to "traverse_non_commits"
Function traverse_trees_and_blobs not only works on trees and blobs, but also on tags, the function name is somewhat misleading. This commit rename it to traverse_non_commits.
--- list-objects.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
list-objects.c +4 -4
@@ -334,8 +334,8 @@ static void add_pending_tree(struct rev_info *revs, struct tree *tree)add_pending_object (revs, &tree->object,"" ); } -static void traverse_trees_and_blobs (struct traversal_context *ctx, -struct strbuf *base) +static void traverse_non_commits (struct traversal_context *ctx, +struct strbuf *base) {int i;
@@ -407,9 +407,9 @@ static void do_traverse(struct traversal_context *ctx)* needs a reallocation for each commit. Can we pass the * tree directory without allocation churn? */ -traverse_trees_and_blobs (ctx, &csp); +traverse_non_commits (ctx, &csp); } -traverse_trees_and_blobs (ctx, &csp); +traverse_non_commits (ctx, &csp);strbuf_release (&csp); }
Signature · 1 line
2.32.0.1.g4c9ac18d93.dirty
Re: [PATCH v3 1/1] list-objects.c: rename "traverse_trees_and_blobs" to "traverse_non_commits"
Quoted 3 lines · Teng Long
Function
traverse_trees_and_blobsnot only works on trees and blobs, but also on tags, the function name is somewhat misleading. This commit rename it totraverse_non_commits.
Thanks, this version looks good to me.
-Peff