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 json
|
||||||
import re
|
import re
|
||||||
import StringIO
|
import StringIO
|
||||||
import atexit, shutil, hashlib
|
import atexit, shutil, hashlib, urlparse, subprocess
|
||||||
|
|
||||||
NAME_RE = re.compile('^([^<>]+)')
|
NAME_RE = re.compile('^([^<>]+)')
|
||||||
AUTHOR_RE = re.compile('^([^<>]+?)? ?<([^<>]*)>$')
|
AUTHOR_RE = re.compile('^([^<>]+?)? ?<([^<>]*)>$')
|
||||||
@ -713,6 +713,14 @@ def get_repo(url, alias):
|
|||||||
|
|
||||||
return branch
|
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):
|
def main(args):
|
||||||
global marks, prefix, dirname
|
global marks, prefix, dirname
|
||||||
global tags, filenodes
|
global tags, filenodes
|
||||||
@ -741,6 +749,9 @@ def main(args):
|
|||||||
gitdir = os.environ['GIT_DIR']
|
gitdir = os.environ['GIT_DIR']
|
||||||
dirname = os.path.join(gitdir, 'bzr', alias)
|
dirname = os.path.join(gitdir, 'bzr', alias)
|
||||||
|
|
||||||
|
if not is_tmp:
|
||||||
|
fix_path(alias, url)
|
||||||
|
|
||||||
if not os.path.exists(dirname):
|
if not os.path.exists(dirname):
|
||||||
os.makedirs(dirname)
|
os.makedirs(dirname)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user