remote-bzr: store converted URL
Bazaar might convert the URL to something more appropriate, like an absolute path. Lets store that instead of the original URL, which won't work from a different working directory if it's relative. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
6134caf2c1
commit
d82c912c43
@ -32,7 +32,7 @@ import os
|
||||
import json
|
||||
import re
|
||||
import StringIO
|
||||
import atexit, shutil, hashlib
|
||||
import atexit, shutil, hashlib, urlparse, subprocess
|
||||
|
||||
NAME_RE = re.compile('^([^<>]+)')
|
||||
AUTHOR_RE = re.compile('^([^<>]+?)? ?<([^<>]*)>$')
|
||||
@ -713,6 +713,14 @@ def get_repo(url, alias):
|
||||
|
||||
return branch
|
||||
|
||||
def fix_path(alias, orig_url):
|
||||
url = urlparse.urlparse(orig_url, 'file')
|
||||
if url.scheme != 'file' or os.path.isabs(url.path):
|
||||
return
|
||||
abs_url = urlparse.urljoin("%s/" % os.getcwd(), orig_url)
|
||||
cmd = ['git', 'config', 'remote.%s.url' % alias, "bzr::%s" % abs_url]
|
||||
subprocess.call(cmd)
|
||||
|
||||
def main(args):
|
||||
global marks, prefix, dirname
|
||||
global tags, filenodes
|
||||
@ -741,6 +749,9 @@ def main(args):
|
||||
gitdir = os.environ['GIT_DIR']
|
||||
dirname = os.path.join(gitdir, 'bzr', alias)
|
||||
|
||||
if not is_tmp:
|
||||
fix_path(alias, url)
|
||||
|
||||
if not os.path.exists(dirname):
|
||||
os.makedirs(dirname)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user