Re: Git issues with submodules

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hey!

Sorry for the delayed reply.

Am i right the intention is to make it so `git add .` and `git commit
.` doesn't include changes to submodule hash unless -f argument is
provided?

On Sun, Nov 24, 2013 at 10:29 PM, Jens Lehmann <Jens.Lehmann@xxxxxx> wrote:
> Am 24.11.2013 01:52, schrieb Heiko Voigt:
>> Hi,
>>
>> On Sat, Nov 23, 2013 at 09:10:44PM +0100, Jens Lehmann wrote:
>>> Am 22.11.2013 23:09, schrieb Jonathan Nieder:
>>>> Heiko Voigt wrote:
>>>>
>>>>> After that we can discuss whether add should add submodules that are
>>>>> tracked but not shown. How about commit -a ? Should it also ignore the
>>>>> change? I am undecided here. There does not seem to be any good
>>>>> decision. From the users point of view we should probably not add it
>>>>> since its not visible in status. What do others think?
>>>>
>>>> I agree --- it should not add.
>>>
>>> I concur: adding a change that is hidden from the user during
>>> the process is not a good idea.
>>
>> Here is a patch achieving that. Still missing a test which I will add.
>
> Looking good to me. Please add tests for "diff.ignoreSubmodules"
> and "submodule.<name>.ignore", the latter both in .gitmodules and
> .git/config. While doing some testing for this thread I found an
> inconsistency in git show which currently honors the submodule
> specific option only from .git/config and ignores it in the
> .gitmodules file (depending on the outcome of the discussion on
> what '--ignore-submodules=all' should ignore we might have to fix
> that one afterwards).
>
> I'd suggest to also add the --ignore-submodules option in another
> patch on top, because the user should be able to override the
> configuration either way. And what about having the '-f' option
> imply '--ignore-submodules=none'?
>
>> Cheers Heiko
>>
>> ---8<----
>> Subject: [PATCH] fix 'git add' to skip submodules configured as ignored
>>
>> If submodules are configured as ignore=all they are not shown by status.
>> Lets also ignore them when adding files to the index. This avoids that
>> users accidentially add ignored submodules with: git add .
>>
>> We achieve this by reading the submodule config and thus correctly
>> initializing the infrastructure to take the ignore decision.
>>
>> Signed-off-by: Heiko Voigt <hvoigt@xxxxxxxxxx>
>> ---
>>  builtin/add.c | 6 ++++++
>>  1 file changed, 6 insertions(+)
>>
>> diff --git a/builtin/add.c b/builtin/add.c
>> index 226f758..2d0d2ef 100644
>> --- a/builtin/add.c
>> +++ b/builtin/add.c
>> @@ -15,6 +15,7 @@
>>  #include "diffcore.h"
>>  #include "revision.h"
>>  #include "bulk-checkin.h"
>> +#include "submodule.h"
>>
>>  static const char * const builtin_add_usage[] = {
>>       N_("git add [options] [--] <pathspec>..."),
>> @@ -378,6 +379,10 @@ static int add_config(const char *var, const char *value, void *cb)
>>               ignore_add_errors = git_config_bool(var, value);
>>               return 0;
>>       }
>> +
>> +     if (!prefixcmp(var, "submodule."))
>> +             return parse_submodule_config_option(var, value);
>> +
>>       return git_default_config(var, value, cb);
>>  }
>>
>> @@ -415,6 +420,7 @@ int cmd_add(int argc, const char **argv, const char *prefix)
>>       int implicit_dot = 0;
>>       struct update_callback_data update_data;
>>
>> +     gitmodules_config();
>>       git_config(add_config, NULL);
>>
>>       argc = parse_options(argc, argv, prefix, builtin_add_options,
>>
>



-- 
With best regards, Sergey Sharybin
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]