Re: [RFC/PATCH] worktree: replace "checkout --to" with "worktree new"

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

 



On Thu, Jul 2, 2015 at 7:41 PM, Duy Nguyen <pclouds@xxxxxxxxx> wrote:
>> merge_working_tree:
>>     tree = parse_tree_indirect(old->commit &&
>>         !opts->new_worktree_mode ?
>>             old->commit->object.sha1 :
>>             EMPTY_TREE_SHA1_BIN);
>
> I think it's to make sure empty sha-1 is used with --to. If
> old->commit->object.sha1 is used and it's something, a real two way
> merge may happen probably with not-so-fun consequences. If it's empty
> sha1, the effect is like "reset --hard", silent and reliable..
>
>> switch_branches:
>>     if (!opts->quiet && !old.path && old.commit &&
>>         new->commit != old.commit && !opts->new_worktree_mode)
>>             orphaned_commit_warning(old.commit, new->commit);
>
> to suppress misleading warning if old.commit happens to be something.

Actually you may be right about not reverting these. We prepare the
new worktree with a valid HEAD, that would make "old" valid and may
trigger things if "git checkout" is used to populate the worktree. To
suppress those "things", we need new_worktree_mode or something
similar.

Unless we want to borrow fancy checkout options for "git worktree
add", we probably should just export checkout() function from clone.c
and use it instead of "git checkout". Much more lightweight and
simpler (it's one-way merge). Then we can revert checkout.c to the
version before "--to".
-- 
Duy
--
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]