git bug - merging JS / Node.js code with "git merge --squash"

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

 



@git-community

I am on Git git version 2.7.4

This problem is happening on Ubuntu 16.04, but the same problem was
also happening when I was running on MacOS.

I am consistently seeing merge bugs, when merging between branches of
a mostly Node.js project.
I am seeing fairly bad merges that mangle the code in ways that seem
to clearly show some sort of Git bug. Some of these merges were for
files where there was likely not even a diff between the files.
TBH I am no Git expert, but maybe I will learn something from this
investigation.

The latest example of a mangled file is here:
https://github.com/ORESoftware/suman/blob/staging/suman.conf.js

You can see some repeat code, and also there is a dangling brace which
means that the file won't even "compile" with Node.js, using "$ node
-c". Notice that this file was *not* a file where I recently  had to
manually merge code or manually fix a conflict, so I am hoping this is
not obvious operator error.

Here is the script I am using to merge between branches:
https://github.com/ORESoftware/suman/blob/dev/publish-suman.sh

basically it is doing the merge with this line:

git merge --squash -Xtheirs dev -m "squashing" &&

This is obviously very concerning because I can get very strange bugs
that I wouldn't expect, because I just assume that merges go well if
they succeed and it's hard to check for failure after that; even in a
compile statically typed language it could still prove difficult.

I am doing a check to make sure all my files compile with "node -c"
after the merge, but even then Git could create mangled code that
would still pass a "node -c" check.

Please let me know if this is a known bug and if there is a good
strategy to avoid it.

thanks!

-- 
Alexander D. Mills
(650)269-9502
alexander.d.mills@xxxxxxxxx

www.linkedin.com/pub/alexander-mills/b/7a5/418/



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