Re: git merge -s subtree seems to be broken.
- From
George Shammas <georgyo@gmail.com>
- Date
- Jul 31, 2018, 15:03 UTC
- Message-ID
- <CAF1Ko+FNfjWMteccfKDBjPEW76rGBLQkGb1icUHmzEZ0fKQJBA@mail.gmail.com>
- In-Reply-To
- <CAF1Ko+FBP5UmETmh071dvn9iv8-N-3YgaP61q-4jQvxFdN0GTA@mail.gmail.com>
Bisecting around, this might be the commit that introduced the breakage.
https://github.com/git/git/commit/d8febde
I really hope that it hasn't been broken for 5 years and I am just doing something wrong.
On Tue, Jul 31, 2018 at 10:09 AM George Shammas <georgyo@gmail.com> wrote:
Show 27 quoted lines
> At work, we recently updated from a massively old version of git (1.7.10) > to 2.18. There are a few code bases that use subtrees, and they seem to > have completely broke when trying to merge in updates. > > I have confirmed that it works correctly in 1.7.10. The 2.18 behavior is > clearly incorrect. > > git init > echo init > test > git add test > git commit -m init > > git remote add tig https://github.com/jonas/tig.git > git fetch tig > git merge -s ours --no-commit --allow-unrelated-histories tig-2.3.0 > git read-tree --prefix=src/ -u tig-2.3.0 > git commit -m "Get upstream tig-2.3.0" > # Notice how the history are merged, and that the source from the upstream > repo is in src > > echo update > test > git commit -a -m "test" > > git merge -s subtree tig-2.4.0 > # Boom, in 2.18 instead of merging into the subtree, it just deletes > everything in the repository, which is clearly the wrong behavior. >