Where I work we have a big directory with one file for each stored procedure.
On deploy, all the stored procedures will get updated from that directory. Rolling back would consist of deploying an earlier version of the repository with the procedures in it.