Previously, Git feeds could be pinned to a particular commit using URL^commit notation. This patch provides the same functionality for SVN-based feeds, using URL@revision notation. Just like pinned Git feeds, pinned SVN feeds do not update when ./scripts/feeds update is run.
Signed-off-by: Nate Hardison <[email protected]> --- scripts/feeds | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/scripts/feeds b/scripts/feeds index 26c2de0..1589bff 100755 --- a/scripts/feeds +++ b/scripts/feeds @@ -105,7 +105,8 @@ sub update_index($) my %update_method = ( 'src-svn' => { - 'init' => "svn checkout '%s' '%s'", + 'init' => "svn checkout '%s' '%s'", + 'init_revision' => "svn checkout -r '%s' '%s' '%s'", 'update' => "svn update", 'controldir' => ".svn", 'revision' => "svn info | grep 'Revision' | cut -d ' ' -f 2 | tr -d '\n'"}, @@ -126,6 +127,7 @@ my %update_method = ( 'revision' => "git show --abbrev-commit HEAD | head -n 1 | cut -d ' ' -f 2 | tr -d '\n'"}, 'src-gitsvn' => { 'init' => "git svn clone -r HEAD '%s' '%s'", + 'init_revision' => "git svn clone -r '%s' '%s' '%s'", 'update' => "git svn rebase", 'controldir' => ".git", 'revision' => "git show --abbrev-commit HEAD | head -n 1 | cut -d ' ' -f 2 | tr -d '\n'"}, @@ -158,6 +160,7 @@ sub update_feed_via($$$$) { $safepath =~ s/'/'\\''/; my ($base_branch, $branch) = split(/;/, $src, 2); my ($base_commit, $commit) = split(/\^/, $src, 2); + my ($base_revision, $revision) = split(/@/, $src, 2); if( $relocate || !$m->{'update'} || !-d "$localpath/$m->{'controldir'}" ) { system("rm -rf '$safepath'"); @@ -165,11 +168,15 @@ sub update_feed_via($$$$) { system(sprintf($m->{'init_branch'}, $branch, $base_branch, $safepath)) == 0 or return 1; } elsif ($m->{'init_commit'} and $commit) { system(sprintf($m->{'init_commit'}, $base_commit, $safepath, $safepath, $commit, $commit)) == 0 or return 1; + } elsif ($m->{'init_revision'} and $revision) { + system(sprintf($m->{'init_revision'}, $revision, $base_revision, $safepath)) == 0 or return 1; } else { system(sprintf($m->{'init'}, $src, $safepath)) == 0 or return 1; } } elsif ($m->{'init_commit'} and $commit) { # in case git hash has been provided don't update the feed + } elsif ($m->{'init_revision'} and $revision) { + # in case svn revision has been provided don't update the feed } else { system("cd '$safepath'; $m->{'update'}") == 0 or return 1; } -- 1.9.1 _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
