Hello all,<br>keep in mind that the branch name in git doesn't mean squat. The only one thing that can identify the proper version is the commit id. The id guarantees a specific parent. If rebased, the commit id will change.<br>
However, you can have n number of branches, named the way you want, and they could have stuff that doesn't really match the "branch name".<br><br>To give a proper example:<br>- at this moment I have a repository of Telepathy in my local PC. The repository has 3 branches: master, upstream, android<br>
Upstream contains stuff from the fd.o repository (eg. master on the public, well-known repository in <a href="http://freedesktop.org">freedesktop.org</a>), master branch contains stuff from an old closed repo I have worked on stuff for a client, and android is a branch I'm using to merge both master and upstream branches to prepare patches.<br>
<br>Git brings in a different way of thinking, and some stuff no longer has the meaning we'd expect it too in other source repositories.<br><br>Regards,<br>Alvaro<br><br><br><div class="gmail_quote">On Fri, Nov 11, 2011 at 8:40 AM, Thomas Baumgart <span dir="ltr"><<a href="mailto:thb@net-bembel.de">thb@net-bembel.de</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Git commit a7dfac98ae4f913f43e55ff318f7f00806d2a215 by Thomas Baumgart.<br>
Committed on 11/11/2011 at 12:40.<br>
Pushed by tbaumgart into branch 'master'.<br>
<br>
Add generation of version suffix for Git based repository<br>
<br>
M  +16   -0    CMakeLists.txt<br>
<br>
<a href="http://commits.kde.org/kmymoney/a7dfac98ae4f913f43e55ff318f7f00806d2a215" target="_blank">http://commits.kde.org/kmymoney/a7dfac98ae4f913f43e55ff318f7f00806d2a215</a><br>
<br>
diff --git a/CMakeLists.txt b/CMakeLists.txt<br>
index 95da58a..3a3bd82 100644<br>
--- a/CMakeLists.txt<br>
+++ b/CMakeLists.txt<br>
@@ -40,6 +40,22 @@ IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.svn)<br>
   SET(ENV{LANG} ${LANG})<br>
 ENDIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.svn)<br>
<br>
+# Determine the GIT reference (if we're based on GIT)<br>
+IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git)<br>
+  # make sure we don't use translated messages here<br>
+  SET(LANG $ENV{LANG})<br>
+  SET(ENV{LANG} "C")<br>
+  EXECUTE_PROCESS(COMMAND git log -1 COMMAND head -n 1 OUTPUT_VARIABLE BRANCH)<br>
+  # extract branch name<br>
+  STRING(REGEX MATCH "commit ([^$]+)" BRANCH "${BRANCH}")<br>
+  SET(BRANCH ${CMAKE_MATCH_1})<br>
+  # and use the first 10 chars of the commit id<br>
+  STRING(SUBSTRING ${BRANCH} 0 10 BRANCH)<br>
+  SET(VERSION_SUFFIX "-${BRANCH}")<br>
+  # switch back to the original language setting<br>
+  SET(ENV{LANG} ${LANG})<br>
+ENDIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git)<br>
+<br>
 ######################### General Requirements ##########################<br>
<br>
 # setup default CMAKE_INSTALL_PREFIX before calling FIND_PACKAGE(KDE4)<br>
</blockquote></div><br>