projects
/
openwrt
/
staging
/
florian.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
163c424
)
scripts/feeds: support checking out git trees with different branches
author
Felix Fietkau
<nbd@openwrt.org>
Mon, 6 Dec 2010 16:57:25 +0000
(16:57 +0000)
committer
Felix Fietkau
<nbd@openwrt.org>
Mon, 6 Dec 2010 16:57:25 +0000
(16:57 +0000)
SVN-Revision: 24285
scripts/feeds
patch
|
blob
|
history
diff --git
a/scripts/feeds
b/scripts/feeds
index 84f97feeb6f515969728f17a267db8437c3b2af8..9f773df9ed3fc185436fd76396918d456b814b02 100755
(executable)
--- a/
scripts/feeds
+++ b/
scripts/feeds
@@
-114,6
+114,7
@@
my %update_method = (
'update' => ""},
'src-git' => {
'init' => "git clone --depth 1 '%s' '%s'",
'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' => {
'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 $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( $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;
}
} else {
system("cd '$safepath'; $m->{'update'}") == 0 or return 1;
}