jpalacios@xxxxxxxxxxxxx

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

 



In a project with a submodule, if you merge two diverging branches in
which one branch updated which commit the submodule points to, and the
other branch moves the submodule to a new location, the resulting
merge error message does not provide information about what the
conflict was, or the path to the conflicted directory.

I've included at the bottom a short script which sets up a project
with a submodule and creates both branches. If after running it you cd
into 'top-level-project' and run 'git merge
branch_that_points_the_submodule_to_new_commit' the resulting error
message is:

Auto-merging submodule-moved
Adding as submodule-moved~HEAD instead
Automatic merge failed; fix conflicts and then commit the result.

I would have expected an output in line with other merge conflict
messages. Something with the format:

CONFLICT (<REASON>): Merge conflict in <PATH_TO_CONFLICT>

Where <REASON> would be something like (delete/modify) I believe this
might be a bug in the implementation.

Thank you

--------------------------

# Create a submodule
mkdir submodule
pushd submodule
echo "This is a submodule" > README.txt
git init
git add README.txt
git commit -m "Initial commit"
popd

# Create a top level project
mkdir top-level-project
pushd top-level-project
echo "This is a parent project" > README.txt
git init
git add README.txt
git commit -m "Initial commit"

# Add submodule to top level project
git submodule add ../submodule/
git commit -m "Added a submodule"

# Create two diverging branches
git checkout -b branch_that_points_the_submodule_to_new_commit
git checkout -b branch_that_moves_the_submodule_to_new_path

# Update the commit the submodule points to in one branch
git checkout branch_that_points_the_submodule_to_new_commit
pushd submodule
echo "This modifies the README file" > README.txt
git add .
git commit -m "Added line to README file"
popd
git add submodule
git commit -m "Updated submodule to point to new commit"

# Move the submodule directory in the other branch
git checkout branch_that_moves_the_submodule_to_new_path
git submodule update
git mv submodule submodule-moved
git commit -m "Moved submodule to new path"
--
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]