"One of our sites is partially maintained by a third-party vendor with developers based out of Kerbleckistan," writes Nathan, "they'll sometimes 'forget' to use version control and instead just write directly to production. This has naturally caused some frustrating 'lost feature' problems when they remember to use source control, and somehow this all falls on me to mitigate."

"To avoid constantly breaking things, I wrote a script that monitors file changes to production and commits any changes to a branch in the repository. I'll then merge their changes into the working mainline. It's usually a few JSP files with some text or a link updated, but recently, when I went to fetch the current status, I was greeted by this friendly result:

# svn st
? htdocs/applet/LocalApplet.jar.20110822
? htdocs/applet/applet/LocalApplet.jar.20110822
? htdocs/applet/applet/applet/LocalApplet.jar.20110822
? htdocs/applet/applet/applet/applet/LocalApplet.jar.20110822
? htdocs/applet/applet/applet/applet/applet/LocalApplet.jar.20110822
? htdocs/applet/applet/applet/applet/applet/applet/LocalApplet.jar.20110822
? htdocs/applet/applet/applet/applet/applet/applet/applet/LocalApplet.jar.20110822
? htdocs/applet/applet/applet/applet/applet/applet/applet/applet/LocalApplet.jar.20110822
? htdocs/applet/applet/applet/applet/applet/applet/applet/applet/applet/LocalApplet.jar.20110822
? htdocs/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/LocalApplet.jar.20110822
? htdocs/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/LocalApplet.jar.20110822
? htdocs/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/LocalApplet.jar.20110822
? htdocs/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/LocalApplet.jar.20110822
? htdocs/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/LocalApplet.jar.20110822
? htdocs/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/LocalApplet.jar.20110822
? htdocs/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/applet/LocalApplet.jar.20110822

"So far as I can tell, the applet does some sort of redirection, but erroneously uses a relative URL to applet/LocalApplet.jar.20110822. Instead of fixing the code, they copied it deep enough so that it would pass all of their test cases."

[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!