[Kmymoney-devel] KMyMoney has moved to git

David Houlden djhoulden at gmail.com
Fri Nov 11 12:40:24 UTC 2011


On Friday 11 November 2011 11:46:58 Thomas Baumgart wrote:
> Hi,
> 
> on Thursday 10 November 2011 14:45:58 Alvaro Soliverez wrote:
> > On Thu, Nov 10, 2011 at 10:39 AM, Thomas Baumgart <thb at net-bembel.de> 
wrote:
> > > Hi,
> > > 
> > > on Thursday 10 November 2011 12:47:40 Alvaro Soliverez wrote:
> > > > On Thu, Nov 10, 2011 at 6:37 AM, David Houlden <djhoulden at gmail.com>
> > > 
> > > wrote:
> > > > > On Thursday 10 November 2011 01:49:28 Alvaro Soliverez wrote:
> > > > > > Hello all,
> > > > > > the move to git has been completed.
> > > > > 
> > > > > Hi,
> > > > > 
> > > > > Thanks for information and the tutorial. I have a couple of
> > > > > questions. Apologies in advance if I'm jumping the gun and they are
> > > > > being worked
> > > 
> > > on.
> > > 
> > > > > 1. There used to be an SVN revision number displayed in the About
> > > > > KMyMoney dialog. This is now gone. Will it be replaced by a git
> > > > > reference? If we report
> > > > > bugs after building from git master how should we report the exact
> > > > > version we
> > > > > are running? Maybe the commit number from "git log -1"?
> > > > 
> > > > Each commit has a unique hash. That's enough to locate it even if
> > > > it's present in several branches. You also have a date and time for
> > > > each
> > > 
> > > commit,
> > > 
> > > > in case you need help locating it in the log.
> > > 
> > > I played a bit with it here locally. I currently see:
> > >  4.6.90-bko-238105-4.6.0-79-g8324cfb
> > > 
> > > '4.6.90' as contained in CMakeLists.txt
> > > 'bko-238105' as my local branch name I am currently on
> > > '4.6.0-79-g8324cfb' as generated by 'git describe'
> > > 
> > > Does that make sense?
> > 
> > I don't follow. Just noting the commit id should be enough to pinpoint
> > the version that is running, and even running git bisect if needed to
> > find a regression.
> > The commit id is unique, no matter which branch it is in.
> 
> Now available in master. The version would be something like:
> 
>   4.6.90-a7dfac98ae
> 
> where the suffix is the beginning of the commit id. This way the following
> is possible:
> 
> thb at thb-nb:~/devel/kmymoney/build> git show a7dfac98a
> commit a7dfac98ae4f913f43e55ff318f7f00806d2a215
> Author: Thomas Baumgart <thb at net-bembel.de>
> Date:   Fri Nov 11 12:40:46 2011 +0100
> 
>     Add generation of version suffix for Git based repository
> 
> diff --git a/CMakeLists.txt b/CMakeLists.txt
> index 95da58a..3a3bd82 100644
> --- a/CMakeLists.txt
> +++ b/CMakeLists.txt
> @@ -40,6 +40,22 @@ IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.svn)
>    SET(ENV{LANG} ${LANG})
>  ENDIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.svn)
> 
> +# Determine the GIT reference (if we're based on GIT)
> +IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git)
> +  # make sure we don't use translated messages here
> +  SET(LANG $ENV{LANG})
> +  SET(ENV{LANG} "C")
> +  EXECUTE_PROCESS(COMMAND git log -1 COMMAND head -n 1 OUTPUT_VARIABLE
> BRANCH)
> +  # extract branch name
> +  STRING(REGEX MATCH "commit ([^$]+)" BRANCH "${BRANCH}")
> +  SET(BRANCH ${CMAKE_MATCH_1})
> +  # and use the first 10 chars of the commit id
> +  STRING(SUBSTRING ${BRANCH} 0 10 BRANCH)
> +  SET(VERSION_SUFFIX "-${BRANCH}")
> +  # switch back to the original language setting
> +  SET(ENV{LANG} ${LANG})
> +ENDIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git)
> +
>  ######################### General Requirements ##########################
> 
>  # setup default CMAKE_INSTALL_PREFIX before calling FIND_PACKAGE(KDE4)

Unfortunately this has broken my build process. It may be unusual but I have 
my build directory outside of the source tree. When I run "cmake ../kmymoney" 
I get an error now.

fatal: Not a git repository (or any parent up to mount parent /usr)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
CMake Error at CMakeLists.txt:53 (STRING):
  string sub-command SUBSTRING requires four arguments.

I think the git log command is being run outside the git tree so it fails.

Regards,
Dave.


More information about the KMyMoney-devel mailing list