Hi Luis and Hannes, On Wed, Aug 17, 2016 at 09:35:56AM +0200, Johannes Sixt wrote: > Am 17.08.2016 um 08:46 schrieb David Aguilar: > > The only thing that using diff-files doesn't address is the > > rerere support in mergetool where it processes the files in > > the order specified by "git rerere remaining". This is why I > > initially thought we needed a generic sort-like command. > > I see. This is actually an important code path. How about this code > structure: > > if test $# -eq 0 > then > cd_to_toplevel > > if test -e "$GIT_DIR/MERGE_RR" > then > set -- $(git rerere remaining) > fi > fi > files=$(git diff-files --name-only --diff-filter=U -- "$@") > Beautiful. > This does not require an enhancement of rerere-remaining and still captures > all three cases that currently go through separate branches. (Throw in some > version of --ignore-submodules= if necessary, but I guess it is not.) > > We do have a problem if there are file names with spaces, but it is not a > new problem. Thanks for the heads-up about file names with spaces. We set, IFS=' ' in git-mergetool--lib.sh so file names with spaces should be ok. Naturally, we won't be able to support paths with embedded newlines, but that's not a new problem ;-) We should probably also set core.quotePath=false when calling diff-files so that git doesn't try to quote "unusual" paths, e.g. git -c core.quotePath=false diff-files ... Lastly, for anyone that's curious, I was wondering why we were passing "-u" to "sort", and why we won't need to use "uniq" in the new version. The reason is that "ls-files -u" lists the different index stages separately, and thus it reports duplicate paths. "diff-files" with "--diff-filter=U" does not do that, so that's another benefit to be gained from this change. I think we've touched all the bases now. Luis, I hope that makes sense. Let us know if any of this is unclear. ciao, -- David -- 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