Re: [PATCH] [GSoC 2014]diff: Imported dir.h and renamed read_directory()
Thanks for the submission. Comments below to give you a taste of the Git review process...
On Tue, Mar 18, 2014 at 8:35 PM, Brian Bourn <ba.bourn@gmail.com> wrote:
> Subject: diff: Imported dir.h and renamed read_directory()
Use imperative voice: "import dir.h and rename read_directory()"
> this was done in order to implement the GSoC
> Micro project for diff-no-index.c
This commentary won't be relevant to anyone reading the commit message months or years from now. Place it below the "---" line following your sign-off.
Show 6 quoted lines
> this is the
> first patch importing dir.h, for the use of
> is_dot_or_dotdot(), and renaming
> read_directory() to read_directory_contents()
> in order to deal with the conflicting function
> in dir.h
Since this preparatory change and the one which will follow are so closely related, they should be submitted together as a two-patch series.
The commit message itself it somewhat rambling. It would be clearer if you could explain the problem precisely, then the solution. Perhaps something like this:
It would be desirable to replace manual checking of "." or ".."
in diff-no-index.c with is_dot_or_dotdot(), which is defined in
dir.h, however, dir.h declares a read_directory() which conflicts
with a (different) static read_directory() defined in
diff-no-index.c. As a preparatory step, rename the local
read_directory() to avoid the collision.Show 18 quoted lines
> Signed-off-by: Brian Bourn <bab2177@columbia.edu>
> ---
>
> I plan on applying to GSoC 2014
>
> diff-no-index.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/diff-no-index.c b/diff-no-index.c
> index 8e10bff..ba915af 100644
> --- a/diff-no-index.c
> +++ b/diff-no-index.c
> @@ -10,13 +10,14 @@
> #include "blob.h"
> #include "tag.h"
> #include "diff.h"
> +#include "dir.h"
> #include "diffcore.h"
dir.h is not needed for this patch, so including it here only confuses matters. Include it instead when it is actually required by the follow-up patch which uses is_dot_or_dotdot().
(Was it intentional to place the new #include between diff.h and diffcore.h? Just being curious; it's not particularly important.)
Other than this, the patch looks sane.
Show 24 quoted lines
> #include "revision.h"
> #include "log-tree.h"
> #include "builtin.h"
> #include "string-list.h"
>
> -static int read_directory(const char *path, struct string_list *list)
> +static int read_directory_contents(const char *path, struct string_list *list)
> {
> DIR *dir;
> struct dirent *e;
> @@ -107,9 +108,9 @@ static int queue_diff(struct diff_options *o,
> int i1, i2, ret = 0;
> size_t len1 = 0, len2 = 0;
>
> - if (name1 && read_directory(name1, &p1))
> + if (name1 && read_directory_contents(name1, &p1))
> return -1;
> - if (name2 && read_directory(name2, &p2)) {
> + if (name2 && read_directory_contents(name2, &p2)) {
> string_list_clear(&p1, 0);
> return -1;
> }
> --
> 1.9.0