X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=scripts%2Ffeeds;h=6121a6265f7a7c4b2c1395b592f246f9be1df04f;hb=18f86060280dbf8e725655a870fd44b2d50315ad;hp=84f97feeb6f515969728f17a267db8437c3b2af8;hpb=218bf045706c685fc7fd3542671886a4cbb8fa29;p=openwrt.git diff --git a/scripts/feeds b/scripts/feeds index 84f97feeb6..6121a6265f 100755 --- a/scripts/feeds +++ b/scripts/feeds @@ -114,8 +114,13 @@ 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-gitsvn' => { + 'init' => "git svn clone -r HEAD '%s' '%s'", + 'update' => "git svn rebase", + 'controldir' => ".git"}, 'src-bzr' => { 'init' => "bzr checkout --lightweight '%s' '%s'", 'update' => "bzr update", @@ -143,10 +148,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; } @@ -280,6 +290,7 @@ my %install_method = ( 'src-cpy' => \&install_generic, 'src-link' => \&install_generic, 'src-git' => \&install_generic, + 'src-gitsvn' => \&install_generic, 'src-bzr' => \&install_generic, 'src-hg' => \&install_generic, 'src-darcs' => \&install_generic,