Re: [PATCH 10/16] worktree: make branch creation distinct from worktree population
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Jul 12, 2015, 02:36 UTC
- Message-ID
- <CAPig+cSiPeJskyanLAv71LuFoqPirUJ2FL0B0BsoT8BEVrE3LA@mail.gmail.com>
- In-Reply-To
- <CACsJy8A8QkeFa3FyCkv8dp-J52NGGaN-AV3oG7W8tNtYqDO-cw@mail.gmail.com>
On Sat, Jul 11, 2015 at 9:20 PM, Duy Nguyen <pclouds@gmail.com> wrote:
Show 23 quoted lines
> On Sat, Jul 11, 2015 at 7:05 AM, Eric Sunshine <sunshine@sunshineco.com> wrote: >> The plan is eventually to populate the new worktree via "git reset >> --hard" rather than "git checkout". Thus, rather than piggybacking on >> git-checkout's -b/-B ability to create a new branch at checkout time, >> git-worktree will need to do so itself. >> >> Signed-off-by: Eric Sunshine <sunshine@sunshineco.com> >> --- >> >> I considered calling branch-related API, such as create_branch(), >> directly, however, git-branch provides extra value which may be useful >> in the future (such as when --track and --orphan get added to >> git-worktree), so it seemed wise to re-use git-branch's implementation >> rather than duplicating the functionality. If this proves the wrong >> choice, then the series can either be re-rolled or follow-on patches can >> address the issue. > > I don't know much about ref handling code (especially after the big > transaction update), so i may be wrong, but do we need to invalidate > some caches in refs.c after this? The same for update-ref in the other > patch. We may need to re-read the index after 'reset --hard' too if we > ever need to do touch the index after that (unlikely though in the > case of 'worktree add')
I'm not sure I understand. Are you talking about this patch's implementation or a possible future change which uses the C API rather than git-branch?
If you're talking about this patch, then I don't think we need to do anything more, as the "git branch" and "git reset --hard" invocations are separate process invocations which shouldn't affect the current worktree or the current "git worktree add" process.
If you're talking about a future patch switching over to the C API, and avoiding run_command(), then perhaps (but I haven't investigated that avenue thoroughly enough to answer).
Or, am I totally misunderstanding you?