Jens Lehmann wrote:
> builtin/rm.c | 14 +++++++--
> submodule.c | 31 ++++++++++++++++++++
> submodule.h | 1 +
> t/t3600-rm.sh | 72
> ++++++++++++++++++++++++++++++++++++++++++----
> t/t7400-submodule-basic.sh | 14 +++------
> t/t7610-mergetool.sh | 6 ++--
> 6 files changed, 117 insertions(+), 21 deletions(-)
Should be very similar to your mv series, as it's essentially the same
challenge.
> diff --git a/submodule.c b/submodule.c
> index 8ce6a7d..6b01a02 100644
> --- a/submodule.c
> +++ b/submodule.c
> @@ -63,6 +63,37 @@ int update_path_in_gitmodules(const char *oldpath, const
> char *newpath)
> return 0;
> }
>
> +/*
> + * Try to remove the "submodule.<name>" section from .gitmodules where the
> + * given path is configured.
> + */
> +int remove_path_from_gitmodules(const char *path)
> +{
> + struct strbuf sect = STRBUF_INIT;
> + struct string_list_item *path_option;
> +
> + if (!file_exists(".gitmodules")) /* Do nothing whithout .gitmodules */
> + return -1;
- Why are you doing this here? Is there no initialization function?
- Why are you hard-coding ".gitmodules" instead of using a simple #define?
- Why are you returning -1, instead of an error() with a message?
> + if (gitmodules_is_unmerged)
> + die(_("Cannot change unmerged .gitmodules, resolve merge
> conflicts first"));
Again, no sanity-checking initialization code?
> + path_option = unsorted_string_list_lookup(&config_name_for_path,
> path);
> + if (!path_option) {
> + warning(_("Could not find section in .gitmodules where
> path=%s"), path);
> + return -1;
> + }
Repetition from your mv series. Why copy-paste, when you can factor
it out into a function?
Why are you calling warning() and then returning -1? (does return
warning() not work?) How is it a warning if you just stop all
processing and return?
> + strbuf_addstr(§, "submodule.");
> + strbuf_addstr(§, path_option->util);
What do you have against strbuf_addf()? I noticed a lot of ugly
addstr() calls in your mv series also.
Why is your variable named "sect"? Did you mean "section"?
> + if (git_config_rename_section_in_file(".gitmodules", sect.buf, NULL)
> < 0) {
You hardcoded ".gitmodules" again!
> + /* Maybe the user already did that, don't error out here */
> + warning(_("Could not remove .gitmodules entry for %s"), path);
> + return -1;
Maybe the user already did what? What happens if she didn't do "it"
and failure is due to some other cause?
Thanks.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html