• 0

Subversion hooks modifying file AssemblyInfo


Question

Here is my conundrum, I have a Visual Basic.NET project, I want the revision of the project to match that of the svn revision and to be updated dynamically but the only solutions I have found that 'work' without fault have to be installed on any computer that is going to work against the source code.

I.e. addition projects (such as using MSBuilds, svnRevisionlabeller, ...) or SubWCRev.exe (as in TortoiseSVN). All of which won't work if someone else uses a different svn client or I'd rather not have to import or use additional programs in my build process if I can use hooks in the repository itself to just update the AssemblyInfo file with the newest revision number.

Does anyone have any suggestions or am I just going to have to give in and use one of these solutions I listed earlier (leaning toward SubWCRev.exe)?

p.s. I am aware of the issues involved in modifying the content of a commit via hooks (and the working copy on the committing computer will not match, which is why I haven't attempted this yet).

3 answers to this question

Recommended Posts

  • 0

Dunno if I understood your requirement correctly (+ its 2:23 in the morning here), but why don't you automate the build process. When the build server retrieves the code from source control, set it up to update the assemblyinfo files accordingly (for example we use a date/time + revision versioning scheme so the build server updates the assembly info files (and some C++ resources) to match this scheme). Basically we never store version information in svn, its autogenerated on every build. That way we avoid the problem where the code in svn is different than the code on the dev's machine. Also, the build server would generally use the default command line client so it does not matter whether you guys use tortoisesvn or ankh to access svn.

  • 0

The way it is setup is anyone can check out the source code, there is no build server, only subversion+apache for source control. Anyone with Visual Studio can check it out and build it but AssemblyInfo.vb is the file generated by the Solution that holds the versioning info for the compiled application and it is updated by Visual Studio separately than the subversion revision number.

Example: AssemblyInfo version is set at 4.1.0.2, i can make all the changes I want and save and compile and it doesn't change (except I can set the build number to increment) whereas the svn commit increments the revision number. So the numbers won't ever be in sync with each other without some outside help, and since anyone can check out the code, I was hoping for a solution independent of their build environment (hence svn hook ideas). So VS could have 4.1.0.9 after a few compiles but with only one commit done, svn would be up by 1.

  • 0

I gave in and just used SubWCRev.exe included with TortoiseSVN to substitute svn revision number in the AssemblyInfo.vb file and added the command in the Pre-Build event.

What this means is that anyone not using TortoiseSVN as their SVN client, and tries to compile the code will error out (or warning out, not too sure as both my developing boxes have that program).

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • They should have locked it on device not cloud. Kids can just sign out the browser and sign in to anther acc or use guest acc. You can block it sort of with group policy locking it so only 1 acc can login. But you cant stop them logging out. My son just ended up resetting the PC and making a random account.
    • You just have to imagine it in the voice of Jony Ive...and taking over 5 minutes to explain. It’s not just a movable volume indicator. It’s fundamentally more considered—every molecule of its form refined, every component reimagined. This is not iteration; it is reinvention. True simplicity is derived from so much more than the absence of clutter or ornamentation. It’s about bringing order to complexity, clarity to chaos—it’s design that feels inevitable. What we’ve created isn’t just new—it’s a new way of thinking. A product that doesn’t compete with the past, but eclipses it entirely. When something is truly intuitive, you don’t notice the design at all. It’s as if the product dissolves, leaving only the experience—the connection—between you and what you’re doing.
    • Kind of an unrelated rant, but... As someone with kids, who as of a few years ago were young enough that I wanted some of these family safety features. I have to say, any good intention MS had was completely RUINED by how absolutely awful the parental interface is. There was the family portal with limited settings, but more detailed settings were scattered is completely unintuitive ways. There was a child details page where you could configure the 100+ features, but, the features in the "gaming" section only applied the extremely limited list of Windows Store games that were not XBox branded. For anything with XBox branded, you had to find the XBox parental consent portal, which had another 100+ features to dig through and try to figure out what was blocking your two kids from playing Minecraft together. To make the experience even more infuriating, MS implemented their same signature documentation we find for 365 and Azure, that it is very easy to find documents talking about how easy it is to use any given dashboard or portal, but without including a link to said resource...you might have to 20-30 results deep on Google before you find that answer, it was nearly impossible to simply find a portal by searching for it.
    • ^ Found the PR spokesperson for Apple!
    • Like many, I'm not buying and expensive items until the tariff nonsense is resolved. I wonder if that has something to do with (along with the notes others are making)?
  • Recent Achievements

    • Week One Done
      Helen Shafer earned a badge
      Week One Done
    • First Post
      emptyother earned a badge
      First Post
    • Week One Done
      Crunchy6 earned a badge
      Week One Done
    • One Month Later
      KynanSEIT earned a badge
      One Month Later
    • One Month Later
      gowtham07 earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      662
    2. 2
      ATLien_0
      269
    3. 3
      Michael Scrip
      218
    4. 4
      Steven P.
      166
    5. 5
      +FloatingFatMan
      159
  • Tell a friend

    Love Neowin? Tell a friend!