diff mbox series

docs: add necessary headers to Documentation/MFOW.txt

Message ID 20230702151457.3227-1-vinayakdev.sci@gmail.com (mailing list archive)
State Accepted
Commit bbd7c7b7c0c2554af7995b19cfc918d07c7f3dbf
Headers show
Series docs: add necessary headers to Documentation/MFOW.txt | expand

Commit Message

Vinayak Dev July 2, 2023, 3:14 p.m. UTC
From: Vinayak Dev <vinayakdev.sci@gmail.com>

The tutorial in Documentation/MyFirstObjectWalk.txt
contains the functions trace_printf(), oid_to_hex(),
and pp_commit_easy(), and struct oidset, which are used
without any hint of where they are defined. When the provided 
code is compiled, the compiler returns an error, stating that 
the functions and the struct are used before declaration. Therefore,include
necessary header files (the ones which have no mentions in the tutorial).

Signed-off-by: Vinayak Dev <vinayakdev.sci@gmail.com>
---
I sent a patch to the mailing list previously, but today I noticed that
the CI builds for the branch on my fork were failing. I turns out that
the tutorial required addition of more files than I had noticed.
I am really, really sorry for this mistake, but I am sure that the tutorial 
is fixed now. The CI builds now pass perfectly.


 Documentation/MyFirstObjectWalk.txt | 26 ++++++++++++++++++++------
 1 file changed, 20 insertions(+), 6 deletions(-)


base-commit: 9748a6820043d5815bee770ffa51647e0adc2cf0

Comments

Junio C Hamano July 5, 2023, 6:12 a.m. UTC | #1
Vinayak Dev <vinayakdev.sci@gmail.com> writes:

> I sent a patch to the mailing list previously, but today I noticed that
> the CI builds for the branch on my fork were failing. I turns out that
> the tutorial required addition of more files than I had noticed.
> I am really, really sorry for this mistake, but I am sure that the tutorial 
> is fixed now. The CI builds now pass perfectly.

That is OK.  So the other one turned out to be a work-in-progress,
and this is the final version, right?

Thanks for working on this.  Will queue.
Vinayak Dev July 5, 2023, 7:16 a.m. UTC | #2
On Wed, 5 Jul 2023 at 11:42, Junio C Hamano <gitster@pobox.com> wrote:
> That is OK.  So the other one turned out to be a work-in-progress,
> and this is the final version, right?

Yes, I included all the files that did not have any mentions in the tutorial.
This should work perfectly fine. But the repository to which the tutorial points
still contains stale code. It might require a re-write, so I will cc Emily too.

> Thanks for working on this.  Will queue.

Thanks a lot!

Have a good day!
Vinayak
diff mbox series

Patch

diff --git a/Documentation/MyFirstObjectWalk.txt b/Documentation/MyFirstObjectWalk.txt
index 200e628e30..c68cdb11b9 100644
--- a/Documentation/MyFirstObjectWalk.txt
+++ b/Documentation/MyFirstObjectWalk.txt
@@ -41,6 +41,7 @@  Open up a new file `builtin/walken.c` and set up the command handler:
  */
 
 #include "builtin.h"
+#include "trace.h"
 
 int cmd_walken(int argc, const char **argv, const char *prefix)
 {
@@ -49,12 +50,13 @@  int cmd_walken(int argc, const char **argv, const char *prefix)
 }
 ----
 
-NOTE: `trace_printf()` differs from `printf()` in that it can be turned on or
-off at runtime. For the purposes of this tutorial, we will write `walken` as
-though it is intended for use as a "plumbing" command: that is, a command which
-is used primarily in scripts, rather than interactively by humans (a "porcelain"
-command). So we will send our debug output to `trace_printf()` instead. When
-running, enable trace output by setting the environment variable `GIT_TRACE`.
+NOTE: `trace_printf()`, defined in `trace.h`, differs from `printf()` in
+that it can be turned on or off at runtime. For the purposes of this
+tutorial, we will write `walken` as though it is intended for use as
+a "plumbing" command: that is, a command which is used primarily in
+scripts, rather than interactively by humans (a "porcelain" command).
+So we will send our debug output to `trace_printf()` instead.
+When running, enable trace output by setting the environment variable `GIT_TRACE`.
 
 Add usage text and `-h` handling, like all subcommands should consistently do
 (our test suite will notice and complain if you fail to do so).
@@ -341,6 +343,10 @@  the walk loop below the `prepare_revision_walk()` call within your
 `walken_commit_walk()`:
 
 ----
+#include "pretty.h"
+
+...
+
 static void walken_commit_walk(struct rev_info *rev)
 {
 	struct commit *commit;
@@ -754,6 +760,10 @@  reachable objects are walked in order to populate the list.
 First, add the `struct oidset` and related items we will use to iterate it:
 
 ----
+#include "oidset.h"
+
+...
+
 static void walken_object_walk(
 	...
 
@@ -805,6 +815,10 @@  just walks of commits. First, we'll make our handlers chattier - modify
 go:
 
 ----
+#include "hex.h"
+
+...
+
 static void walken_show_commit(struct commit *cmt, void *buf)
 {
 	trace_printf("commit: %s\n", oid_to_hex(&cmt->object.oid));