Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes: >> No, what you are talking about is a need of negative prefix, which you >> did not implement in that no/src/dst-prefix patch. > > I'm probably missing something, but wouldn't a "diff --git gitk-git/gitk > gitk-git/gitk" instead of "diff --git a/gitk-git/gitk b/gitk-git/gitk" in > mbox format be directly grokkable by git-am? > >> Using --no-prefix is a _hack_ that may happen to work only when >> the subtree-merged project is one level down. > > Yep. But my point was more to show that it is still a valid git diff. My point was that the validness you mentined above is a happenstance, and not a result of a good design. After I move gitk-git one level down to modules/gitk but before making it as a submodule, the output with --no-prefix will say "diff --git modules/gitk/gitk modules/gitk/gitk", and that will not be a suitable diff for Paul to apply to his tree. I think he needs "-p2", but then he can already do that to diffs produced without using your --no-prefix that talks about "diff --git a/gitk-git/gitk b/gitk-git/gitk". IOW, --no-prefix is not a solution to anything. And that is why I keep calling your "--no-prefix happens to work if you are only talking about a project that is subtree-merged one level down" argument a _hack_. If we were to do this properly in "git diff", we would: - introduce a separate --strip-paths=1 (or whatever number of levels of leading prefix); - not use --{src,dst,no}-prefix and you would do: $ git diff --strip-paths=1 gitk-git in the current tree, which would first strip one path component and then do the usual opt->a_prefix/b_prefix thing to show: diff --git a/gitk b/gitk Similarly you would run: $ git diff --strip-paths=2 modules/gitk after I move gitk-git down one level. An alternative would be to use the jc/diff-relative topic currently parked in 'offcuts' branch, and run: $ cd gitk-git && git diff . or $ cd modules/gitk && git diff . which would give diffs in relative paths. - 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