X-Git-Url: http://git.ozo.com/?p=openwrt-10.03%2F.git;a=blobdiff_plain;f=scripts%2Ffeeds;fp=scripts%2Ffeeds;h=e623451c6a840c1400ec116d94cafc28c27d1b1d;hp=43c5c6dc43d2e691c0ee283b6651808d58a46ea4;hb=092fb3210fdafcb8f799192973191ebce562ea75;hpb=a90d4c321f2c2b98de460a43453df74c05a3f606 diff --git a/scripts/feeds b/scripts/feeds index 43c5c6dc4..e623451c6 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' => { @@ -139,10 +140,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; }