--- /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
+# <jgoerzen@complete.org>
+#
+# 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