#17842: scripts/feeds update -a can fail rather silently for git feeds
-----------------------+----------------------------------
 Reporter:  hnyman     |      Owner:  developers
     Type:  defect     |     Status:  new
 Priority:  normal     |  Milestone:  Chaos Calmer (trunk)
Component:  toolchain  |    Version:  Trunk
 Keywords:  feeds git  |
-----------------------+----------------------------------
 "scripts/feeds update -a" can fail rather silently for feeds using git, as
 the script does not pause when updating a feed fails. Instead it prints
 the error message and calmly continues to the next feed. It is very easy
 to overlook update errors with the feeds updated first, as their text
 scrolls rapidly away from the screen.

 This has not been a big problem with svn feeds, as svn update stops with a
 conflict message and interactively forces the user to resolve or postpone
 the conflict. In any case the error will be noticed by the user.

 Majority of the feeds use now git, so this silent failure can affect users
 doing private builds in an increasing amount.

 Toolchain script should be improved to better inform user about failures.
 Preferably updating should stop after a failure.

 Below is an example of update failing and script continuing:
 {{{
 perus@v1404:/Openwrt/barrier$ ./scripts/feeds update -a
 Updating feed 'packages' from
 'https://github.com/openwrt/packages.git;for-14.07' ...
 remote: Counting objects: 17, done.
 remote: Compressing objects: 100% (15/15), done.
 remote: Total 17 (delta 10), reused 8 (delta 1)
 Unpacking objects: 100% (17/17), done.
 From https://github.com/openwrt/packages
    62031da..dc26009  for-14.07  -> origin/for-14.07
 Updating 62031da..dc26009
 error: Your local changes to the following files would be overwritten by
 merge:
         utils/collectd/Makefile
 Please, commit your changes or stash them before you can merge.
 Aborting
 failed.
 Updating feed 'luci' from
 'http://git.openwrt.org/project/luci.git;luci-0.12' ...
 Already up-to-date.
 Create index file './feeds/luci.index'
 Updating feed 'routing' from 'https://github.com/openwrt-
 routing/packages.git;for-14.07' ...
 ...
 }}}

 The script prints "failed.", but does not break the updating process. It
 looks like the "update_feed" function returns an error code 1, but that is
 not checked in "update" which continues to the next feed.
 Return 1 as error:
 https://dev.openwrt.org/browser/trunk/scripts/feeds#L547
 Call to update_feed without any error monitoring:
 https://dev.openwrt.org/browser/trunk/scripts/feeds#L585

--
Ticket URL: <https://dev.openwrt.org/ticket/17842>
OpenWrt <http://openwrt.org>
Opensource Wireless Router Technology
_______________________________________________
openwrt-tickets mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-tickets

Reply via email to