Thomas Rast wrote:
> [...]
I think you've misunderstood the whole thing. The histories of M^1
and M^2 are completely unrelated: they're from different projects
altogether. Considering the /ichi in M^2 a "rename" of the /ichi in
M^1 is completely wrong. They have nothing to do with each other. I
intentionally named it "ichi" in my orphan branch just to drive my
point. I suspect you've got confused because I used an orphan branch
to emulate a different project's history. If you want an end-user
understanding of the problem, use git subtree:
$ cd /tmp
$ git clone gh:artagnon/varlog
$ cd varlog
$ git subtree add --prefix=clayoven \
gh:artagnon/clayoven master
$ cd clayoven
$ git log README.md
What do you expect? The same output you would get if you cloned
gh:artagnon/clayoven separately and executed 'git log README.md' on
it.
Now, clayoven's README.md (the one in HEAD^2) has nothing to do with
varlog's README.md (the one in HEAD^1). It's just incidental that
both projects have a README.md. I repeat: clayoven and varlog have
_nothing_ to do with each other. If I say git log --follow README.md
in the above example, I don't even get the HEAD commit. And I
wouldn't expect to either.
I will repeat this: --follow has nothing to do with the problem I've
specified. And it is not tied to "renaming" (ie. changing the
name/path of a file) as you've made it look. If you're still not
convinced, I've included a testcase for --follow "following" over a
merge commit (include it after the --follow test in the t4202). Try
it without the --follow and you'll see what I mean. Neither the
filename nor the filepath of ichi has changed in this example.
-- 8< --
test_expect_success '--follow over merge' '
git checkout -b featurebranch
echo foodle >>ichi &&
git add ichi &&
test_tick &&
git commit -m "add a line to the end of ichi" &&
echo moodle >unrelated &&
git add unrelated &&
test_tick &&
git commit -m quux &&
git checkout master &&
mv ichi ichi.bak &&
echo gooble >ichi &&
cat ichi.bak >>ichi &&
git add ichi &&
test_tick &&
git commit -m "add a line to the beginning of ichi" &&
git merge featurebranch &&
git log --follow --oneline ichi >actual &&
cat >expect <<-\EOF &&
df26551 add a line to the beginning of ichi
882d8d9 add a line to the end of ichi
2fbe8c0 third
f7dab8e second
3a2fdcb initial
EOF
test_cmp expect actual
'
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html