docs: def generateRevision(self):
          """
          Generates the revision file for this builder.
          """
          revpath = self.sourcePath()
          if not os.path.exists(revpath):
              return
  
          # determine the revision location
          revfile = os.path.join(revpath, self.revisionFilename())
          mode = ''
          # test for svn revision
          try:
              args = ['svn', 'info', revpath]
              proc = subprocess.Popen(args, stdout=subprocess.PIPE)
              mode = 'svn'
          except WindowsError:
              try:
                  args = ['git', 'rev-parse', 'HEAD', revpath]
                  proc = subprocess.Popen(args, stdout=subprocess.PIPE)
                  mode = 'git'
              except WindowsError:
                  return
  
          # process SVN revision
          rev = None
  
          if mode == 'svn':
              for line in proc.stdout:
                  data = re.match('^Revision: (\d+)', line)
                  if data:
                      rev = int(data.group(1))
                      break
  
          if rev is not None:
              try:
                  f = open(revfile, 'w')
                  f.write('__revision__ = {0}\n'.format(rev))
                  f.close()
              except IOError:
                  pass