summaryrefslogtreecommitdiff
path: root/sync-all
diff options
context:
space:
mode:
authorHerbert Valerio Riedel <hvr@gnu.org>2013-08-09 13:03:54 +0200
committerHerbert Valerio Riedel <hvr@gnu.org>2013-08-09 13:03:54 +0200
commit4f43572224b3c8723dc1bf0e886313b0e9c92049 (patch)
tree468d6ad549bc45fe70fdbaf5de84354af92687d6 /sync-all
parenta22e908a460ab20da006c74be4ca3fc068d461f0 (diff)
downloadhaskell-4f43572224b3c8723dc1bf0e886313b0e9c92049.tar.gz
Make `sync-all remote set-url` use normalized `/packages/` urls
A simple heuristic (i.e. replacing the `libraries/` suffix by `packages/` in the inferred remotepath, if the remotepath in the `packages` file is "-") used to infer the remotepath for Git submodules. A proper solution would require to parse the `.gitmodules` file to obtain the actual localpath<->remotepath mapping. This addresses #8121 and is a follow-up to a22e908 which changed the `.gitmodules` urls to use the `/packages/` folder instead of `/libraries/`.
Diffstat (limited to 'sync-all')
-rwxr-xr-xsync-all11
1 files changed, 10 insertions, 1 deletions
diff --git a/sync-all b/sync-all
index e3d6f35acc..293fbc734d 100755
--- a/sync-all
+++ b/sync-all
@@ -455,7 +455,16 @@ sub gitall {
my $rpath;
$ignore_failure = 1;
if ($remotepath eq '-') {
- $rpath = "$repo_base/$localpath";
+ $rpath = "$localpath.git"; # N.B.: $localpath lacks the .git suffix
+ if ($localpath =~ /^libraries\//) {
+ # FIXME: This is just a simple heuristic to
+ # infer the remotepath for Git submodules. A
+ # proper solution would require to parse the
+ # .gitmodules file to obtain the actual
+ # localpath<->remotepath mapping.
+ $rpath =~ s/^libraries\//packages\//;
+ }
+ $rpath = "$repo_base/$rpath";
} else {
$rpath = $path;
}