old_contents: #!/usr/bin/env python
  
  ## zip archive frontend for git-fast-import
  ##
  ## For example:
  ##
  ##  mkdir project; cd project; git init
  ##  python import-zips.py *.zip
  ##  git log --stat import-zips
  
  from os import popen, path
  from sys import argv, exit, hexversion, stderr
  from time import mktime
  from zipfile import ZipFile
  
  if hexversion < 0x01060000:
          # The limiter is the zipfile module
          stderr.write("import-zips.py: requires Python 1.6.0 or later.\n")
          exit(1)
  
  if len(argv) < 2:
          print 'usage:', argv[0], '<zipfile>...'
  	exit(1)
  
  branch_ref = 'refs/heads/import-zips'
  committer_name = 'Z Ip Creator'
  committer_email = 'zip@example.com'
  
  fast_import = popen('git fast-import --quiet', 'w')
  def printlines(list):
  	for str in list:
  		fast_import.write(str + "\n")
  
  for zipfile in argv[1:]:
  	commit_time = 0
  	next_mark = 1
  	common_prefix = None
  	mark = dict()
  
  	zip = ZipFile(zipfile, 'r')
  	for name in zip.namelist():
  		if name.endswith('/'):
  			continue
  		info = zip.getinfo(name)
  
  		if commit_time < info.date_time:
  			commit_time = info.date_time
  		if common_prefix == None:
  			common_prefix = name[:name.rfind('/') + 1]
  		else:
  			while not name.startswith(common_prefix):
  				last_slash = common_prefix[:-1].rfind('/') + 1
  				common_prefix = common_prefix[:last_slash]
  
  		mark[name] = ':' + str(next_mark)
  		next_mark += 1
  
  		printlines(('blob', 'mark ' + mark[name], \
  					'data ' + str(info.file_size)))
  		fast_import.write(zip.read(name) + "\n")
  
  	committer = committer_name + ' <' + committer_email + '> %d +0000' % \
  		mktime(commit_time + (0, 0, 0))
  
  	printlines(('commit ' + branch_ref, 'committer ' + committer, \
  		'data <<EOM', 'Imported from ' + zipfile + '.', 'EOM', \
  		'', 'deleteall'))
  
  	for name in mark.keys():
  		fast_import.write('M 100644 ' + mark[name] + ' ' +
  			name[len(common_prefix):] + "\n")
  
  	printlines(('',  'tag ' + path.basename(zipfile), \
  		'from ' + branch_ref, 'tagger ' + committer, \
  		'data <<EOM', 'Package ' + zipfile, 'EOM', ''))
  
  if fast_import.close():
  	exit(1)
  
new_contents: #!/usr/bin/env python
  
  ## zip archive frontend for git-fast-import
  ##
  ## For example:
  ##
  ##  mkdir project; cd project; git init
  ##  python import-zips.py *.zip
  ##  git log --stat import-zips
  
  from os import popen, path
  from sys import argv, exit, hexversion, stderr
  from time import mktime
  from zipfile import ZipFile
  
  if hexversion < 0x01060000:
      # The limiter is the zipfile module
      stderr.write("import-zips.py: requires Python 1.6.0 or later.\n")
      exit(1)
  
  if len(argv) < 2:
      print 'usage:', argv[0], '<zipfile>...'
      exit(1)
  
  branch_ref = 'refs/heads/import-zips'
  committer_name = 'Z Ip Creator'
  committer_email = 'zip@example.com'
  
  fast_import = popen('git fast-import --quiet', 'w')
  def printlines(list):
      for str in list:
          fast_import.write(str + "\n")
  
  for zipfile in argv[1:]:
      commit_time = 0
      next_mark = 1
      common_prefix = None
      mark = dict()
  
      zip = ZipFile(zipfile, 'r')
      for name in zip.namelist():
          if name.endswith('/'):
              continue
          info = zip.getinfo(name)
  
          if commit_time < info.date_time:
              commit_time = info.date_time
          if common_prefix == None:
              common_prefix = name[:name.rfind('/') + 1]
          else:
              while not name.startswith(common_prefix):
                  last_slash = common_prefix[:-1].rfind('/') + 1
                  common_prefix = common_prefix[:last_slash]
  
          mark[name] = ':' + str(next_mark)
          next_mark += 1
  
          printlines(('blob', 'mark ' + mark[name], \
                      'data ' + str(info.file_size)))
          fast_import.write(zip.read(name) + "\n")
  
      committer = committer_name + ' <' + committer_email + '> %d +0000' % \
          mktime(commit_time + (0, 0, 0))
  
      printlines(('commit ' + branch_ref, 'committer ' + committer, \
          'data <<EOM', 'Imported from ' + zipfile + '.', 'EOM', \
          '', 'deleteall'))
  
      for name in mark.keys():
          fast_import.write('M 100644 ' + mark[name] + ' ' +
              name[len(common_prefix):] + "\n")
  
      printlines(('',  'tag ' + path.basename(zipfile), \
          'from ' + branch_ref, 'tagger ' + committer, \
          'data <<EOM', 'Package ' + zipfile, 'EOM', ''))
  
  if fast_import.close():
      exit(1)
  
subject: use spaces instead of tabs