diff -r d51331eaec15 -r e8262ca32109 thirdparty/vcs-load-dirs/vcs_support/commandver.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/thirdparty/vcs-load-dirs/vcs_support/commandver.py Tue May 12 15:52:53 2009 +0200 @@ -0,0 +1,179 @@ +# Copyright (C) 2003-2007 John Goerzen +# +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +import util +vcssyn = None +vcsobj = None +vcscmd = None +darcs = False +svk = False +git = False +hg = False + +def setscm(x): + global darcs, svk, git, vcscmd, hg + if (x == "darcs"): + vcscmd = "darcs" + darcs = True + elif (x == "baz"): + vcscmd = "baz" + elif (x == "tla"): + vcscmd = "tla" + elif (x == "git"): + vcscmd = "git" + git = True + elif (x == "hg"): + vcscmd = "hg" + hg = True + elif (x == "svk"): + vcscmd = "svk" + svk = True + else: + print "Failed to determine VCS to use" + sys.exit(2) + print " VCSCMD: ", vcscmd + +def isdarcs(): + global darcs + return darcs + +def issvk(): + global svk + return svk + +def isgit(): + global git + return git + +def ishg(): + global hg + return hg + +def getvcssyntax(): + global vcssyn, vcsobj + if vcssyn != None: + return vcssyn + + if isdarcs(): + vcssyn = 'darcs' + vcsobj = Darcs() + elif ishg(): + vcssyn = 'hg' + vcsobj = Hg() + elif isgit(): + vcssyn = 'Git' + vcsobj = Git() + elif util.getstdoutsafeexec(vcscmd, ['-V'])[0].find('tla-1.0.') != -1: + vcssyn = '1.0' + vcsobj = Tla10() + elif util.getstdoutsafeexec(vcscmd, ['-V'])[0].find('tla-1.1.') != -1: + vcssyn = '1.1' + vcsobj = Tla11() + elif util.getstdoutsafeexec(vcscmd, ['-V'])[0].find('tla-1.3.') != -1: + vcssyn = '1.3' + vcsobj = Tla13() + elif util.getstdoutsafeexec(vcscmd, ['-V'])[0].find('baz Bazaar version 1.4.') != -1: + vcssyn = 'baz1.4' + vcsobj = Baz14() + elif util.getstdoutsafeexec(vcscmd, ['-V'])[0].find('This is svk') != -1: + vcssyn = 'svk' + vcsobj = Svk() + else: + vcssyn = '1.3' + vcsobj = Tla13() + return vcssyn + +class Tla10: + tagging_method = 'tagging-method' + add = ['add-tag'] + move = 'move-tag' + delete = ['delete-tag'] + update = 'update --in-place .' + replay = 'replay --in-place .' + commit = 'commit' + importcmd = 'import' + +class Tla11: + tagging_method = 'id-tagging-method' + add = ['add'] + move = 'move' + delete = ['delete'] + update = 'update' + replay = 'replay' + commit = 'commit' + importcmd = 'import' + +class Tla13: + tagging_method = 'id-tagging-method' + add = ['add-id'] + move = 'move-id' + delete = ['delete-id'] + update = 'update' + replay = 'replay' + commit = 'commit' + importcmd = 'import' + +class Baz14: + tagging_method = 'id-tagging-method' + add = ['add-id'] + move = 'move-id' + delete = ['delete-id'] + update = 'update' + replay = 'replay' + commit = 'commit' + importcmd = 'import' + +class Darcs: + tagging_method = None + add = ['add', '--case-ok'] + move = 'mv' + delete = None + update = 'pull' + replay = 'pull' + commit = 'record' + +class Hg: + tagging_method = None + add = ['add'] + move = 'mv' + delete = None + update = 'pull' + replay = 'pull' + commit = 'commit' + +class Git: + tagging_method = None + add = ['add'] + move = 'mv' + delete = ['rm', '-r'] + update = 'checkout' + replay = None + commit = 'commit' + +class Svk: + tagging_method = None + add = ['add'] + move = 'mv' + delete = ['rm'] + update = 'pull' + replay = 'pull' + commit = 'commit' + +def cmd(): + global vcsobj + getvcssyntax() + return vcsobj