From 729923d4a2d5a22f6509de438953ef6035d38e20 Mon Sep 17 00:00:00 2001 From: Brian Dolbec Date: Sun, 7 Oct 2012 23:15:51 -0700 Subject: Fix bug 372583. Don't add redundant trailing slashes on src uri's where trailing slashes are required. --- layman/overlays/bzr.py | 9 +++++++-- layman/overlays/darcs.py | 9 +++++++-- layman/overlays/git.py | 5 ++++- layman/overlays/mercurial.py | 9 +++++++-- layman/overlays/svn.py | 8 +++++++- 5 files changed, 32 insertions(+), 8 deletions(-) diff --git a/layman/overlays/bzr.py b/layman/overlays/bzr.py index fb1fb24..5bda251 100644 --- a/layman/overlays/bzr.py +++ b/layman/overlays/bzr.py @@ -56,12 +56,17 @@ class BzrOverlay(OverlaySource): cfg_opts = self.config["bzr_addopts"] target = path([base, self.parent.name]) + if self.src.endswith("/"): + src = self.src + else: + src = self.src + '/' + # bzr get SOURCE TARGET if len(cfg_opts): args = ['branch', cfg_opts, - self.src + '/', target] + src, target] else: - args = ['branch', self.src + '/', target] + args = ['branch', src, target] return self.postsync( self.run_command(self.command(), args, cmd=self.type), cwd=target) diff --git a/layman/overlays/darcs.py b/layman/overlays/darcs.py index d3eec6a..634681b 100644 --- a/layman/overlays/darcs.py +++ b/layman/overlays/darcs.py @@ -55,13 +55,18 @@ class DarcsOverlay(OverlaySource): cfg_opts = self.config["darcs_addopts"] target = path([base, self.parent.name]) + if self.src.endswith("/"): + src = self.src + else: + src = self.src + '/' + # darcs get --partial SOURCE TARGET if len(cfg_opts): args = ['get', '--partial', cfg_opts, - self.src + '/', target] + src, target] else: args = ['get', '--partial', - self.src + '/', target] + src, target] return self.postsync( self.run_command(self.command(), args, cmd=self.type), diff --git a/layman/overlays/git.py b/layman/overlays/git.py index e15f26d..81e650c 100644 --- a/layman/overlays/git.py +++ b/layman/overlays/git.py @@ -53,7 +53,10 @@ class GitOverlay(OverlaySource): def fix_git_source(source): # http:// should get trailing slash, other protocols shouldn't if source.split(':')[0] == 'http': - return source + '/' + if source.endswith('/'): + return source + else: + return source + '/' return source cfg_opts = self.config["git_addopts"] diff --git a/layman/overlays/mercurial.py b/layman/overlays/mercurial.py index 0d8250e..5034993 100644 --- a/layman/overlays/mercurial.py +++ b/layman/overlays/mercurial.py @@ -56,11 +56,16 @@ class MercurialOverlay(OverlaySource): cfg_opts = self.config["mercurial_addopts"] target = path([base, self.parent.name]) + if self.src.endswith("/"): + src = self.src + else: + src = self.src + '/' + # hg clone SOURCE TARGET if len(cfg_opts): - args = ['clone', cfg_opts, self.src + '/', target] + args = ['clone', cfg_opts, src, target] else: - args = ['clone', self.src + '/', target] + args = ['clone', src, target] return self.postsync( self.run_command(self.command(), args, cmd=self.type), diff --git a/layman/overlays/svn.py b/layman/overlays/svn.py index 9785025..4804925 100644 --- a/layman/overlays/svn.py +++ b/layman/overlays/svn.py @@ -67,7 +67,13 @@ class SvnOverlay(OverlaySource): args.append('-q') if len(cfg_opts): args.append(cfg_opts) - args.append(self.src + '/@') + + if self.src.endswith("/"): + src = self.src + '@' + else: + src = self.src + '/@' + + args.append(src) args.append(self.target) return self.postsync( -- cgit v1.2.3-1-g7c22