Create git repo from svn
This commit is contained in:
commit
84d3102f18
12 files changed
+2231
No files matched your search
Executable
+134
@@ -0,0 +1,134 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# $Id: make_tag.py 1221 2016-05-26 11:00:07Z ehrlicher $
|
||||
# $HeadURL: svn://192.168.133.21/admin/rpmbuild/make_tag.py $
|
||||
# $Author: ehrlicher $
|
||||
# Created by Christian Ehrlicher, SLSE, 20013-02-19
|
||||
#
|
||||
|
||||
import datetime
|
||||
import getopt
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
# helper functions
|
||||
def verbose():
|
||||
verb = os.getenv( "EMERGE_VERBOSE" )
|
||||
if ( not verb == None and verb.isdigit() and int(verb) > 0 ):
|
||||
return int( verb )
|
||||
else:
|
||||
return 0
|
||||
|
||||
def debug( message ):
|
||||
if verbose() > 0:
|
||||
print "emerge debug:", message
|
||||
return True
|
||||
|
||||
def die( message ):
|
||||
print >> sys.stderr, "emerge fatal error: %s" % message
|
||||
sys.exit( 1 )
|
||||
|
||||
def system( cmdstring, file = None ):
|
||||
debug( "Executing '%s'" % cmdstring )
|
||||
out = subprocess.PIPE
|
||||
if file != None:
|
||||
out = file
|
||||
p = subprocess.Popen( cmdstring, shell=True, stdout=out, stderr=sys.stderr )
|
||||
ret = p.wait()
|
||||
if ( ret != 0 ):
|
||||
die( "Error executing %s (%s)" % (cmdstring, ret) )
|
||||
ret = ""
|
||||
if file == None:
|
||||
ret = p.stdout.read().strip()
|
||||
return ret
|
||||
|
||||
def getSvn_Release( svn_dir ):
|
||||
try:
|
||||
old_lang = os.environ['LANG']
|
||||
except:
|
||||
old_lang = None
|
||||
os.putenv("LANG", "en_US")
|
||||
cmd = "svn info %s | grep \"Last Changed Rev\"" % svn_dir
|
||||
rel = system( cmd ).split(':')[1].strip()
|
||||
if old_lang:
|
||||
os.putenv("LANG", old_lang)
|
||||
return rel
|
||||
|
||||
def usage():
|
||||
print >> sys.stdout, "Usage: %s [-r repository] [-s source] -p <project_name> -v <version>" % sys.argv[0]
|
||||
print >> sys.stdout, " e.g.: %s -r TDS -s ctc -p tes_uae_ctc -v 4.3" % sys.argv[0]
|
||||
print >> sys.stdout, " e.g.: %s -r AVS -s trunk -p tes_uae_ctc -v 4.3" % sys.argv[0]
|
||||
|
||||
|
||||
|
||||
def main():
|
||||
svn_server = "slssvn"
|
||||
|
||||
try:
|
||||
ip = socket.gethostbyname(socket.gethostname())
|
||||
if ip.startswith('172.'):
|
||||
svn_server = "ECCORAS01"
|
||||
except:
|
||||
print >> sys.stdout, "Using %s as svn server" % svn_server
|
||||
|
||||
try:
|
||||
opts, args = getopt.getopt(sys.argv[1:], "p:r:s:v:",
|
||||
["project_name=", "source=", "repository=", "version=",])
|
||||
except getopt.GetoptError, err:
|
||||
print >> sys.stderr, err
|
||||
usage()
|
||||
sys.exit(2)
|
||||
|
||||
version = None
|
||||
project_name = None
|
||||
svn_repo = "TDS"
|
||||
svn_src = None
|
||||
for o, a in opts:
|
||||
if o in ("-p", "--project_name"):
|
||||
project_name = a
|
||||
if o in ("-r", "--repository"):
|
||||
svn_repo = a
|
||||
if o in ("-s", "--source"):
|
||||
svn_src = a
|
||||
if o in ("-v", "--version"):
|
||||
version = a.split('.')
|
||||
try:
|
||||
version_maj = version[0]
|
||||
version_min = version[1]
|
||||
version = "%s.%s" % ( version_maj, version_min )
|
||||
except:
|
||||
die( "Invalid version format (maj.min): %s" % a )
|
||||
|
||||
if not version or not project_name:
|
||||
usage()
|
||||
die("Version or project name not defined")
|
||||
|
||||
if not svn_src:
|
||||
svn_src = project_name[project_name.rfind('_') + 1:]
|
||||
project = project_name[:project_name.rfind('_'):]
|
||||
subproject_src = svn_src
|
||||
subproject_dst = project_name[project_name.rfind('_') + 1:]
|
||||
|
||||
svn_branch = "svn://%s/%s/branches/%s/stable/%s" % ( svn_server, svn_repo, project, subproject_src )
|
||||
full_version = "%s-%s" % ( version, getSvn_Release( svn_branch ) )
|
||||
svn_tag = "svn://%s/%s/tags/%s/%s/%s_%s-%s" % ( svn_server, svn_repo, project, subproject_dst, project, subproject_dst, full_version )
|
||||
|
||||
print "Project: %s" % project
|
||||
print "SubProject SRC: %s" % subproject_src
|
||||
print "SubProject DST: %s" % subproject_dst
|
||||
print "SVN Path: %s" % svn_branch
|
||||
print "SVN Tag: %s" % svn_tag
|
||||
|
||||
filename = "svn-commit-msg-branch-%s" % project_name
|
||||
f = open( filename, 'w' )
|
||||
f.write( "Tagged TES UAE %s rev %s on %s\n" % ( project_name.upper(), full_version, datetime.date.today().isoformat() ) )
|
||||
f.close()
|
||||
|
||||
system("svn cp %s %s -F %s" % ( svn_branch, svn_tag, filename ) )
|
||||
|
||||
os.remove( filename )
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in new issue
Block a user