Re: [PATCH 2/6] Split unpack_trees 'reset' flag into two for untracked handling

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

 



On Sat, Sep 18 2021, Elijah Newren via GitGitGadget wrote:

> -	opts.reset = reset;
> +	opts.reset_keep_untracked = reset;
>  	opts.fn = twoway_merge;
> +	/* Setup opts.dir so that ignored files in the way get overwritten */
> +	opts.dir = xcalloc(1, sizeof(*opts.dir));
> +	opts.dir->flags |= DIR_SHOW_IGNORED;
> +	setup_standard_excludes(opts.dir);

Is the "opts.dir" free'd later somehow?

>  	opts.head_idx = -1;
>  	opts.update = worktree;
>  	opts.skip_unmerged = !worktree;
> -	opts.reset = 1;
> +	if (o->force)
> +		opts.reset_nuke_untracked = 1;
> +	else
> +		opts.reset_keep_untracked = 1;

In both cases opts.reset_keep_untracked is set to 1, I assume it's a
mistake, aside from that perhaps betteras:

    opts.reset_keep_untracked = o->force; /* or !o->force, depending... */

>  	opts.merge = 1;
>  	opts.fn = oneway_merge;
>  	opts.verbose_update = o->show_progress;
>  	opts.src_index = &the_index;
>  	opts.dst_index = &the_index;
> +	if (o->overwrite_ignore) {
> +		opts.dir = xcalloc(1, sizeof(*opts.dir));

ditto potential leak.

> +		opts.dir = xcalloc(1, sizeof(*opts.dir));
> +		opts.dir->flags |= DIR_SHOW_IGNORED;
> +		setup_standard_excludes(opts.dir);
> +	}


ditto (also more omitted).



[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]

  Powered by Linux