mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-11-27 18:15:00 +02:00
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
This commit is contained in:
parent
2ad1d18700
commit
01f7581424
@ -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'");
|
||||
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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user