Search code examples
c#debuggingversion-controlconfiguration-management

How to debug old versions of software?


Note: Currently using Perforce as a CM tool.

I currently do several debug releases of software [only debug files (.pdb) and binaries (.dll and .exe)]. At every release, I check the all the files used to generate the binaries into our CM tool (baseline). Then I checkout the files and continue making changes. Currently, if there was an issue with one of the releases such that we needed to debug it, I would have to revert the code back to the version used.

My question is, how should I go about easily debugging old versions? If I create a branch from the baseline I just did, then I could easily just build the previous version for debugging, but what about further back than that? I don’t want to branch every time I do a baseline (pretty sure I don’t want to do that).

I know with VHDL you can create builds with test points and use the Xilinx tools to debug any built version of VHDL. Is there a similar way we can do this in VS (maybe using the .pdb files and some external tools)?

How do you go about baselining revisions so that you can easily debug old version?


Solution

  • Eric Sinc has a fantasic Source Control HOWTO that covers this topic (and much more).

    I would highly recommend reading it because this guy knows his stuff.

    You'd be most interested in Chapter 6: History and Chapter 7: Branches.

    This stuff really helped me when I was learning about source control and software release strategies.