I would like to start tagging my deployed binaries with the latest SVN revision number.
However, because SVN is file-based and not directory/project-based, I need to scan through all the directory’s and subdirectory’s files in order to determine the highest revision number.
Using svn info on the root doesn’t work (it just reports the version of that directory, not files in subdirectories):
I was wondering if there is a shortcut using the svn command to do this. Otherwise, can anyone suggest a simple script that is network-efficient (I would prefer if it didn’t hit the remote server at all)?
I also understand that one alternative approach is to keep a version file with the svn:keywords. This works (I’ve used it on other projects), but I get tired of dealing with making sure the file is dirty and dealing with the inevitable merge conflicts.
Answer I see my problem lied with not doing a proper svn up before calling svn info in the root directory:
$ svn info Path: . ... Last Changed Author: fak Last Changed Rev: 713 Last Changed Date: 2008-08-29 00:40:53 +0300 (Fri, 29 Aug 2008) $ svn up At revision 721. $ svn info Path: . ... Revision: 721 Last Changed Author: reuben Last Changed Rev: 721 Last Changed Date: 2008-08-31 22:55:22 +0300 (Sun, 31 Aug 2008)
One way. When you check out the code, look at the last line of svn output:
A more direct way: