> From: Johannes Schindelin <Johannes.Schindelin@xxxxxx> > To: tzachi perelstein <tzachi_perelstein@xxxxxxxxx> > Cc: git@xxxxxxxxxxxxxxx > Sent: Tue, January 19, 2010 12:35:41 PM > Subject: Re: git-describe recognize modified files > > Hi, > > On Tue, 19 Jan 2010, tzachi perelstein wrote: > > > I use git-describe to form a build version automatically. This allows me > > to deliver temporary builds for testing without having to make manual > > tags for them. The only thing that bothers me about this is that from > > the output of git-describe I cannot tell if there are some modified > > files in tree or not. In both cases I will get the same version. > > > > To solve this issue, in addition to git-describe, my do_version script > > also run git-status, and if there are "modified:" files then it > > concatenates the string "+dirty" to output of git-describe. > > The problem is that this does not describe the exact version you used very > well. If you are really serious about describing the exact state you > described, make a tag (committing the changes to a detached HEAD first, if > you do not want the changes in a real branch). > Well yes, this is valid, but you will end up with a tag for every build... this goes way too far. Consider the case where you have no modified files in your tree. The output of git-describe at some given point is 'v1.0.0-2-g123457' and during the build it becomes the build version. Now you make some changes, but before committing them you build, install, and run a test. During the second build, the output of git-describe remains the same 'v1.0.0-2-g123457' although it represent two different trees. This behavior looks like somewhat incomplete to me. It sounds reasonable to me to let git-describe have the option of indicating about modified files in tree, say 'v1.0.0-2-g123457-modified' or something similar. While 'v1.0.0-2-g123457' is something you and git can refer to (i.e. checkout), 'v1.0.0-2-g123457-modified' is not. By adding the "-modified" string, git tells you explicitly that it cannot fully describe the exact tree you're using. -- 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