Sorry if this is not actually a PL/SQL question but this is the best forum I could find to ask it.
I always used "traditional" VCS (version control systems) like SVN to track changes on SQL / PL/SQL code like packages, scripts etc. It allows you to embed tags like $Id$ in the code, which at commit time are expanded like this:
$Id: revision 1.42 22/03/2014 L Cabral$
This is quite helpful when you are investigating issues in some environment and need to know the exact version of a package that is running there. Also, it is easy to spot when the wrong version was deployed somewhere; these are only two of many scenarios where I find this very useful.
However, in my current project they use Git as the version control system, and it doesn't have anything like the $Id$ tag. It doesn't even have revision numbers, instead it has hash tags like this 726AD7D6AD823FD which are assigned every time you commit changes.
I don't want to delve in the merits of this architecture; I understand the reasons for it and I know it works very well for many people. But from a practical point of view, I find it very difficult and risky to do database development and support without being able to identify straight away the version of PL/SQL code that is running in a specific database.
Does any one use Git with PL/SQL code? Does it work well? How do you keep track of code deployments, problem investigation etc?
Thanks
Luis