diff options
author | Marius Storm-Olsen <marius.storm-olsen@nokia.com> | 2011-06-01 12:17:41 -0500 |
---|---|---|
committer | Marius Storm-Olsen <marius.storm-olsen@nokia.com> | 2011-06-01 12:17:41 -0500 |
commit | da3eb5c7ec24e306fce5dabb3988243d8462e44a (patch) | |
tree | 885f64286c53ad869f2ee6e408df14de0b04bd04 /init-repository | |
parent | 5d54ac9bb02e420d28d4b784fc99503c23fbaab1 (diff) |
Add 'staging' remote to repos which don't have a staging area
This makes it simpler to do
git submodule foreach
commands, since you don't need to worry about the repos without
any staging area.
Diffstat (limited to 'init-repository')
-rwxr-xr-x | init-repository | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/init-repository b/init-repository index 999fdf96..47371be0 100755 --- a/init-repository +++ b/init-repository @@ -428,18 +428,30 @@ sub git_add_staging_remote my @staging = grep { /^$repo_basename$/; } keys %STAGING_REPOS; - foreach my $staging_repo (@staging) { - # nothing to do if remote already exists - next if ($current_remotes{$staging_repo}); + if (!@staging) { + # Add origin's URL as staging's URL, since this repo has no separate staging area + unless ($current_remotes{'staging'}) { + my @configresult = qx(git remote -v); + foreach (@configresult) { + if (/origin\s+(\S+) \(fetch\)/) { + $self->exe('git', 'remote', 'add', 'staging', $1); + } + } + } + } else { + foreach my $staging_repo (@staging) { + # nothing to do if remote already exists + next if ($current_remotes{'staging'}); - my $staging_repo_url = $STAGING_REPOS{$staging_repo}; - if ($protocol) { - if ($protocol ne 'http') { - $staging_repo_url =~ s,^git://gitorious\.org/qt-labs/,${url_base_for_protocol}qt/,; + my $staging_repo_url = $STAGING_REPOS{$staging_repo}; + if ($protocol) { + if ($protocol ne 'http') { + $staging_repo_url =~ s,^git://gitorious\.org/qt-labs/,${url_base_for_protocol}qt/,; + } + $staging_repo_url =~ s,^git://gitorious\.org/,$url_base_for_protocol,; } - $staging_repo_url =~ s,^git://gitorious\.org/,$url_base_for_protocol,; + $self->exe('git', 'remote', 'add', 'staging', $staging_repo_url); } - $self->exe('git', 'remote', 'add', 'staging', $staging_repo_url); } return; |