gclient: git relative url implementation

Redo relative url implementation per maruel's comments here:
http://codereview.chromium.org/500015

Instead of adding an option, implement relative urls differently for
git urls.

Review URL: http://codereview.chromium.org/546022

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@36126 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/tests/gclient_scm_test.py b/tests/gclient_scm_test.py
index 9794b51..66c1f5e 100755
--- a/tests/gclient_scm_test.py
+++ b/tests/gclient_scm_test.py
@@ -66,8 +66,8 @@
     members = [
         'COMMAND', 'Capture', 'CaptureHeadRevision', 'CaptureInfo',
         'CaptureStatus', 'DiffItem', 'GenerateDiff', 'GetCheckoutRoot',
-        'GetEmail', 'GetFileProperty', 'IsMoved', 'ReadSimpleAuth', 'Run',
-        'RunAndFilterOutput', 'RunAndGetFileList',
+        'GetEmail', 'GetFileProperty', 'FullUrlForRelativeUrl', 'IsMoved',
+        'ReadSimpleAuth', 'Run', 'RunAndFilterOutput', 'RunAndGetFileList',
         'RunCommand', 'cleanup', 'diff', 'export', 'pack', 'relpath', 'revert',
         'revinfo', 'runhooks', 'scm_name', 'status', 'update', 'url',
     ]
@@ -81,6 +81,22 @@
     exception_msg = 'Unsupported scm %(scm_name)s' % kwargs
     self.assertRaisesError(exception_msg, self._scm_wrapper, *args, **kwargs)
 
+  def testSVNFullUrlForRelativeUrl(self):
+    self.url = 'svn://a/b/c/d'
+
+    self.mox.ReplayAll()
+    scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir,
+                            relpath=self.relpath)
+    self.assertEqual(scm.FullUrlForRelativeUrl('/crap'), 'svn://a/b/crap')
+
+  def testGITFullUrlForRelativeUrl(self):
+    self.url = 'git://a/b/c/d'
+
+    self.mox.ReplayAll()
+    scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir,
+                            relpath=self.relpath)
+    self.assertEqual(scm.FullUrlForRelativeUrl('/crap'), 'git://a/b/c/crap')
+
   def testRunCommandException(self):
     options = self.Options(verbose=False)
     file_path = gclient_scm.os.path.join(self.root_dir, self.relpath, '.git')
@@ -361,10 +377,11 @@
   def testDir(self):
     members = [
         'COMMAND', 'Capture', 'CaptureStatus', 'FetchUpstreamTuple',
-        'GenerateDiff', 'GetBranch', 'GetBranchRef', 'GetCheckoutRoot',
-        'GetDifferentFiles', 'GetEmail', 'GetPatchName', 'GetSVNBranch',
-        'GetUpstream', 'IsGitSvn', 'RunAndFilterOutput', 'ShortBranchName',
-        'RunCommand', 'cleanup', 'diff', 'export', 'pack', 'relpath', 'revert',
+        'FullUrlForRelativeUrl', 'GenerateDiff', 'GetBranch', 'GetBranchRef',
+        'GetCheckoutRoot', 'GetDifferentFiles', 'GetEmail', 'GetPatchName',
+        'GetSVNBranch', 'GetUpstream', 'IsGitSvn', 'RunAndFilterOutput',
+        'ShortBranchName', 'RunCommand',
+        'cleanup', 'diff', 'export', 'pack', 'relpath', 'revert',
         'revinfo', 'runhooks', 'scm_name', 'status', 'update', 'url',
     ]