• 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

    • Similar to what started me on the path to switching to Linux... for the first 6mo of Win10 it was installing an AMD GPU driver that broke audio over HDMI which was essential to me. Driver from AMDs site was fine.
    • I have avoided many deer, a few moose, and other smaller animals during my years of driving and have managed just fine with only ABS and ESP, both of which can also be problematic depending on circumstance. I have never feared driving and I live in a rural area with a lot of deer and other animals. Winter or summer, heavy rain or sunshine, night or day, I always prefer and like to drive myself, and I drive constantly in my job. People die in accidents and they always will, that is a fact of life. Something like self-driving busses I can advocate for because they can be set to drive on static routes that always stay the same - i.e. those routes can be specially designed and maintained for them. I've already seen enough idiots doing random idiotic things with their Tesla autodrives that I would rather see them crash and burn because of their own stupidity instead of their "computer failing". I've also been a PC and tech enthusiast of over 25 years so I I'm fine with tech but I want to be the one who uses it, and decides how much of it I use. I also do not want it to make my hands, feet and brain obsolete. For me it's not really about if a computer can do it but about people not having to do things themselves (responsibly). I think that basic driving education should be done with a manual car and these "automatic only" cards should not exist (yes, I'm European and we drive a lot of manual cars, I even prefer them). If a person doesn't have enough coordination to manage a steering wheel, shitfer and pedals, how on Earth are they able to react to any unforseen situation on the road? And giving them autodrive doesn't make me feel any better if the person behind the wheel can't manage even basic driving themselves. One of the things I hate most in today's society (in general) is how pretty much everything that is considered even a bit dangerous is eliminated instead of educating people to assess risks and avoid problems themselves. Instead we make brains obsolete by building systems that do everything for us.
    • I know, I was just speaking about people in general.
    • I would say that's a purely subjective opinion, Phaseman.
  • Recent Achievements

    • One Month Later
      KynanSEIT earned a badge
      One Month Later
    • One Month Later
      gowtham07 earned a badge
      One Month Later
    • Collaborator
      lethalman went up a rank
      Collaborator
    • Week One Done
      Wayne Robinson earned a badge
      Week One Done
    • One Month Later
      Karan Khanna earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      681
    2. 2
      ATLien_0
      274
    3. 3
      Michael Scrip
      220
    4. 4
      +FloatingFatMan
      170
    5. 5
      Steven P.
      161
  • Tell a friend

    Love Neowin? Tell a friend!