From: Juan Palacios <jpalacios@atlassian.com>
To: git@vger.kernel.org
Subject: jpalacios@atlassian.com
Date: Fri, 24 Oct 2014 13:50:02 +1100 [thread overview]
Message-ID: <CABY2JrJjZH+hgeGCBwFjBxsTdo_M2yXctr1dJKLxFL28hacQPw@mail.gmail.com> (raw)
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"
reply other threads:[~2014-10-24 2:50 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CABY2JrJjZH+hgeGCBwFjBxsTdo_M2yXctr1dJKLxFL28hacQPw@mail.gmail.com \
--to=jpalacios@atlassian.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).