diff --git a/Makefile b/Makefile index 730b38a968ccc678985b037bfb314c0f96e22315..dda9b9dd79adaa90ded1a646d58634da0b88e9ca 100644 --- a/Makefile +++ b/Makefile @@ -610,7 +610,10 @@ $(XDIFF_LIB): $(XDIFF_OBJS) perl/Makefile: perl/Git.pm perl/Makefile.PL - (cd perl && $(PERL_PATH) Makefile.PL PREFIX="$(prefix)" DEFINE="$(ALL_CFLAGS)" LIBS="$(LIBS)") + (cd perl && $(PERL_PATH) Makefile.PL \ + PREFIX="$(prefix)" \ + DEFINE="$(ALL_CFLAGS) -DGIT_VERSION=\\\"$(GIT_VERSION)\\\"" \ + LIBS="$(LIBS)") doc: $(MAKE) -C Documentation all diff --git a/perl/Git.pm b/perl/Git.pm index 212337ee5bfe64bb0479eab01beb073f4f007f89..dcd769b4d1ef121e37f156f8580fb63ce39cf816 100644 --- a/perl/Git.pm +++ b/perl/Git.pm @@ -48,7 +48,7 @@ =head1 SYNOPSIS # Methods which can be called as standalone functions as well: @EXPORT_OK = qw(command command_oneline command_pipe command_noisy - exec_path hash_object); + version exec_path hash_object); =head1 DESCRIPTION @@ -285,6 +285,18 @@ sub command_noisy { } +=item version () + +Return the Git version in use. + +Implementation of this function is very fast; no external command calls +are involved. + +=cut + +# Implemented in Git.xs. + + =item exec_path () Return path to the git sub-command executables (the same as diff --git a/perl/Git.xs b/perl/Git.xs index 6478f9c77f4ead953c0f1fdbf9d9c41732529215..d4608eb1cb198f0c5426d90270e202d441c7da82 100644 --- a/perl/Git.xs +++ b/perl/Git.xs @@ -23,6 +23,16 @@ PROTOTYPES: DISABLE # /* TODO: xs_call_gate(). See Git.pm. */ +const char * +xs_version() +CODE: +{ + RETVAL = GIT_VERSION; +} +OUTPUT: + RETVAL + + const char * xs_exec_path() CODE: