On Mon, Dec 15, 2008 at 14:46, Kenneth Goldman <kgoldman_at_us.ibm.com> wrote:
> "Andy Levy" <andy.levy_at_gmail.com> wrote on 12/15/2008 02:15:27 PM:
>
>> On Mon, Dec 15, 2008 at 09:51, Kenneth Goldman <kgoldman_at_us.ibm.com>
>> wrote:
>> > I'd like to have svn add the current version of a directory to some C
>> > source code, something like
>> >
>> > #DEFINE PROGRAM_VERSION 1234
>> >
>> > or
>> >
>> > const unsigned long program_version = 1234;
>> >
>> > Is there a way to do that? Googling came up with two not quite right
>> > alternatives:
>> >
>> > - svn itself can add the current version of the file to the file, but
>> > that only works if I change the file every time.
>> >
>> > - svnversion utility can return the global version, and the makefile
>> > can add it in during the compile, but it won't appear in the source.
>> > Builder who just get the source and not svn repository access can't
>> > run svnversion, can they?
>> >
>> > Is there a standard way to do this? Is there a better forum?
>>
>> If there's a "more accepted" method of doing it than the FAQ
>> indicates, then the FAQ needs to be updated.
>>
>> http://subversion.tigris.org/faq.html#version-value-in-source
>
> This 'FAQ answer' requires use of the svnversion command at build time.
>
> As I tried to explain above, this requires access to the svn repository
> at build time, right? The version never appears in the source, right?
> So If I create a source tarball and send it to someone, they can't
> build binaries.
The FAQ answer requires access to the repository at *some* time. It
doesn't have to be at compile time. It can be at the time you create
your source tarball, if you make the call to svnversion part of your
process for building that tarball.
In fact, the FAQ even states "You can incorporate it into your build
*or release process*". It does not explicitly state that you can only
use it at build time - you inferred that from your own experience &
perception of what's made available.
> I think I need the global version applied to the file at commit, not at
> build, but I don't understand how to do that. However, it seems like
> such a common need that there must be a solution.
>
The FAQ answer is a solution. That process isn't restricted to just
build or release time - you can execute that anytime you need it.
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=1065&dsMessageId=984715
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_subversion.tigris.org].
Received on 2008-12-16 00:48:11 CET