I have started working recently in driver verification for a hardware company. The work is writing short software tests that verify known issues, bugs and possible faults anyone can think of.
Now, in the course of my basic training for the role here I have come across an ugly practice of version control usage. The company uses SVN for holding versioned code repositories. But it is done in the most abusive fashion I have ever seen.
The repository is treated as a versioned drive, so to speak. The trunk, tags and branches are totally ignored and neglected, and the work is done only in arbitrary directories located at the repository root (beside the trunk). Furthermore, the repository stores a vast amount of projects, that should be divided into smaller project repositories.
In addition to that, the entire daily work practices with the version control are abusive. The commits are treated as carved in stone, kind of like tags. Each commit triggers a mail to be sent to 10 different people - including 2 levels of managers. My manager even told me to commit more sparsely - once a day or two - because he receives too many commit mails. Mike Mason would have gone berserk.
I have read books from the pragmatic bookshelf, including Pragmatic Version Control using SVN, and there seems no knowledge of this around here. I really believe, from my own experience, that the practices discussed in these books help people work better, and better accomplish day-to-day goals. I would have liked to see a bit of these practices propagate in the workplace.
I was suggested a few ideas so far as to how to approach this. But I would like not to specify them here, so as not to dictate the sort of answers I am looking for, but have an open stage to suggestions of all sorts.
How would you approach such a case?