Hacker News new | ask | show | jobs
by nrclark 1613 days ago
> And in return, basic operations like merge/rebase start breaking in unintuitive ways.

I just haven't had the same experience at all. Could we work through a specific example?

> I rebase my changes. I have changes in RobustToolbox that are only visible in Git Bash. Other Git clients show no changes.

That's because git-submodule doesn't really interconnect across repos (not much anyways). A submodule is a completely separate repo, with its own stage, commit history, etc. It doesn't even know that it's a being used as a submodule.

Committing/merging/rebasing in your submodule doesn't change the parent. And committing/merging/rebasing in your parent doesn't change the submodule (aside from maybe what commit is checked out).

1 comments

> That's because git-submodule doesn't really interconnect across repos (not much anyways). A submodule is a completely separate repo

Yeah. I know. Submodules is the file that has link to external repo, and hash to submodule current Head/current version.

----

I think you misunderstood my example.

Ss14 has RobustToolbox submodule.

I changed something unrelated in ss14 on branch fix. But master updates submodules.

I rebase fix on master.

Git bash notes Robust has changed. Nothing else does.

Why? How?

This is just some awful implementation details leaking the flimsy Git submodules abstraction.