diff options
author | Felix Fietkau <nbd@openwrt.org> | 2010-12-06 16:57:25 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2010-12-06 16:57:25 +0000 |
commit | 40786544eedc3cf4818d04a97ee33af34e546833 (patch) | |
tree | 11434df2e5662db889846e3cbeb8b317c1217ef7 /scripts | |
parent | abf928b1d8b26d816f738113a26d5bf3a2d3fe61 (diff) | |
download | master-187ad058-40786544eedc3cf4818d04a97ee33af34e546833.tar.gz master-187ad058-40786544eedc3cf4818d04a97ee33af34e546833.tar.bz2 master-187ad058-40786544eedc3cf4818d04a97ee33af34e546833.zip |
scripts/feeds: support checking out git trees with different branches
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@24285 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/feeds | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/scripts/feeds b/scripts/feeds index 84f97feeb6..9f773df9ed 100755 --- a/scripts/feeds +++ b/scripts/feeds @@ -114,6 +114,7 @@ my %update_method = ( 'update' => ""}, 'src-git' => { 'init' => "git clone --depth 1 '%s' '%s'", + 'init_branch' => "git clone --depth 1 --branch '%s' '%s' '%s'", 'update' => "git pull", 'controldir' => ".git"}, 'src-bzr' => { @@ -143,10 +144,15 @@ sub update_feed_via($$$$) { my $localpath = "./feeds/$name"; my $safepath = $localpath; $safepath =~ s/'/'\\''/; + my ($base, $branch) = split(/;/, $src, 2); if( $relocate || !$m->{'update'} || !-d "$localpath/$m->{'controldir'}" ) { system("rm -rf '$safepath'"); - system(sprintf($m->{'init'}, $src, $safepath)) == 0 or return 1; + if ($m->{'init_branch'} and $branch) { + system(sprintf($m->{'init_branch'}, $branch, $base, $safepath)) == 0 or return 1; + } else { + system(sprintf($m->{'init'}, $src, $safepath)) == 0 or return 1; + } } else { system("cd '$safepath'; $m->{'update'}") == 0 or return 1; } |