Currently it just replace "-" in argv[] into "@{-1}". For example, git diff - equals to git diff @{-1} Signed-off-by: Senorsen <senorsen.zhang@xxxxxxxxx> --- Notes: Hello everyone, I'm Zhang Sen, a college student from Zhejiang University in China, and this is a patch for the microproject of GSoC 2016. I'm looking forward to contributing to Git and participating in GSoC 2016. I have learnt some rules and guides from the documents, and carefully wrote this small patch, according to other code from git. Thanks a lot! builtin/diff.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/builtin/diff.c b/builtin/diff.c index 52c98a9..c110141 100644 --- a/builtin/diff.c +++ b/builtin/diff.c @@ -389,6 +389,11 @@ int cmd_diff(int argc, const char **argv, const char *prefix) } } + for (i = 0; i < argc; i++) { + if (!strcmp(argv[i], "-")) + argv[i] = "@{-1}"; + } + for (i = 0; i < rev.pending.nr; i++) { struct object_array_entry *entry = &rev.pending.objects[i]; struct object *obj = entry->item; -- 2.7.0 -- 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