To help support our clients and make our jobs easier, our support team creates and maintains a number of small (often < 50 line) proprietary scripts in a number of different languages to simplify normal tasks. These are currently stored in a number of places, from an internal wiki, to .txt files on people's own hard disks, on internal servers etc. and it's becoming difficult to track down the latest version of each one.

Really, these need to be kept separate and don't really relate to each other enough to be put into a shared source repository, but aren't significant enough to warrant creating a separate RCS repository for each.

Are you aware of any software or practices which would be suitable for managing a large number of these scripts? This would ideally provide the following functions:

  • revision control
  • web access (download single script over HTTP)
  • authentication
  • encryption

If there's no standard piece of software or standard practice for this, I guess it'll just come down to creating something simple myself.

  • I suppose what I want really, is self-hosted github gists? Or something similar.... – JamesHannah Dec 14 '10 at 0:01

I beg to differ about your point that scripts aren't significant enough for version control. They are often very important (logon scripts mapping network drives for example) and like you say also often just live on the server without any version history, so if you mess it up you're screwed.

We keep all our scripts in a Subversion repository, and that works very well for us. The benefits are pretty clear.

  • This is the authoritative source of any script we have. There's no doubt that somebody made an update to it last week but didn't share the change with everyone.
  • Changes to the scripts are tracked, and can be reverted it if goes pear shaped. Anyone breaking the script can be chastised.

Version control systems are pretty lightweight, and you can either piggyback another system (if you have in house developers, create a repository on their server) or create a virtual machine running a lightweight Linux distro if you need to.

As an aside, there was a post on the Server Fault blog recently about just this. Check it out.


In similar situations in the past, I've created one repository in $scm_of_choice, with subdirectories for each related group (admin_scripts, sql_scripts, etc).

Alternately, depending on how many scripts you're talking about, you could create one repository per problem domain.


since you want to track the version is natural to use a version control system - there are a few - svn, git etc.

for web access you may need to install some additional software but it can be done very easily.(for svn you may install an ssl enabled server, git uses ssh)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.