Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
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@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html