Re: [PATCH v7 5/7] submodule: correct output of submodule log format

2016-08-18 Thread Stefan Beller
On Wed, Aug 17, 2016 at 5:51 PM, Jacob Keller  wrote:
> From: Jacob Keller 
>
> The submodule log diff output incorrectly states that the submodule is
> "not checked out" in cases where it wants to say the submodule is "not
> initialized". Change the wording to reflect the actual check being
> performed.
>
> Signed-off-by: Jacob Keller 
> ---
>  submodule.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/submodule.c b/submodule.c
> index 1b5cdfb7e784..e1a51b7506ff 100644
> --- a/submodule.c
> +++ b/submodule.c
> @@ -348,7 +348,7 @@ void show_submodule_summary(FILE *f, const char *path,
> if (is_null_sha1(two))
> message = "(submodule deleted)";
> else if (add_submodule_odb(path))
> -   message = "(not checked out)";
> +   message = "(not initialized)";

I think "not checked" out is actually correct here.

$ git clone https://gerrit.googlesource.com/gerrit
$ cd gerrit
$ git submodule update --init
  ...
$ git diff cc82b24..5222e66 plugins/
Submodule plugins/cookbook-plugin 2d40ee2..69b8f9f:
 > Organize imports
$ rm -rf plugins/cookbook-plugin/
$ git diff cc82b24..5222e66 plugins/
Submodule plugins/cookbook-plugin 2d40ee2...69b8f9f (not checked out)
$

Mind that by "rm -rf" of the working dir I create the "not checked out,
but initialized state and even cloned state".

So as a long term TODO:
I guess we could teach `add_submodule_odb` to operate
inside its git directory instead of its working directory, to have
it working whenever we have the object database (no matter if
checked out or not). Although this may collide with the plan of a
different refs backend? I dunno.

add_submodule_odb is used in a variety of places:
show_submodule_header
submodule_needs_pushing
push_submodule
is_submodule_commit_present
merge_submodule

And all of them seem to not require a checkout, but the presence of
objects is fine.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v7 5/7] submodule: correct output of submodule log format

2016-08-18 Thread Jacob Keller
On Thu, Aug 18, 2016 at 11:25 AM, Stefan Beller  wrote:
> On Wed, Aug 17, 2016 at 5:51 PM, Jacob Keller  
> wrote:
>> From: Jacob Keller 
>>
>> The submodule log diff output incorrectly states that the submodule is
>> "not checked out" in cases where it wants to say the submodule is "not
>> initialized". Change the wording to reflect the actual check being
>> performed.
>>
>> Signed-off-by: Jacob Keller 
>> ---
>>  submodule.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/submodule.c b/submodule.c
>> index 1b5cdfb7e784..e1a51b7506ff 100644
>> --- a/submodule.c
>> +++ b/submodule.c
>> @@ -348,7 +348,7 @@ void show_submodule_summary(FILE *f, const char *path,
>> if (is_null_sha1(two))
>> message = "(submodule deleted)";
>> else if (add_submodule_odb(path))
>> -   message = "(not checked out)";
>> +   message = "(not initialized)";
>
> I think "not checked" out is actually correct here.
>

Hmmm.. It shouldn't say not checked out. I was running iinto problems
in some of my tests which indicated that the entire sub module didn't
exist. I think I had already assumed it wasn't failing when no
checkout. I think I have some fix for add_submodule_odb that can help
with this, making submodule dir behave correctly for this case.

I want add_submodule_odb to work in both of these cases:

a) we don't have a working checkout but we have the objects in the
usual location
b) we have a working directory with objects inside a .git folder but
it hasn't yet been moved into .git/modules/<>

I'll take a look and see what I can do.

> $ git clone https://gerrit.googlesource.com/gerrit
> $ cd gerrit
> $ git submodule update --init
>   ...
> $ git diff cc82b24..5222e66 plugins/
> Submodule plugins/cookbook-plugin 2d40ee2..69b8f9f:
>  > Organize imports
> $ rm -rf plugins/cookbook-plugin/
> $ git diff cc82b24..5222e66 plugins/
> Submodule plugins/cookbook-plugin 2d40ee2...69b8f9f (not checked out)
> $
>
> Mind that by "rm -rf" of the working dir I create the "not checked out,
> but initialized state and even cloned state".
>
> So as a long term TODO:
> I guess we could teach `add_submodule_odb` to operate
> inside its git directory instead of its working directory, to have
> it working whenever we have the object database (no matter if
> checked out or not). Although this may collide with the plan of a
> different refs backend? I dunno.
>
> add_submodule_odb is used in a variety of places:
> show_submodule_header
> submodule_needs_pushing
> push_submodule
> is_submodule_commit_present
> merge_submodule
>
> And all of them seem to not require a checkout, but the presence of
> objects is fine.

Yea, they really only need objects, not the working tree.

Thanks,
Jake
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v7 5/7] submodule: correct output of submodule log format

2016-08-17 Thread Jacob Keller
From: Jacob Keller 

The submodule log diff output incorrectly states that the submodule is
"not checked out" in cases where it wants to say the submodule is "not
initialized". Change the wording to reflect the actual check being
performed.

Signed-off-by: Jacob Keller 
---
 submodule.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/submodule.c b/submodule.c
index 1b5cdfb7e784..e1a51b7506ff 100644
--- a/submodule.c
+++ b/submodule.c
@@ -348,7 +348,7 @@ void show_submodule_summary(FILE *f, const char *path,
if (is_null_sha1(two))
message = "(submodule deleted)";
else if (add_submodule_odb(path))
-   message = "(not checked out)";
+   message = "(not initialized)";
else if (is_null_sha1(one))
message = "(new submodule)";
else if (!(left = lookup_commit_reference(one)) ||
-- 
2.10.0.rc0.217.g609f9e8.dirty

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html