inossidabile / grunt-ftpush

Grunt task for incremental code deployment over ftp

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Error 550 on re-deployment of jQuery UI

OndraM opened this issue · comments

Hi,
after first successful deployment using ftpush, the same task executed again fails with error 550 on files belonging to jQuery UI.

Relevant part from debug log:

[D] Switching to full synchronization mode...
[D] Touch '/public/components/'
[D] Touch '/public/components/fancybox'
[D] Touch '/public/components/fancybox/lib'
[D] Touch '/public/components/fancybox/source'
[D] Touch '/public/components/fancybox/source/helpers'
[D] Touch '/public/components/jquery'
[D] Touch '/public/components/jquery-migrate'
[D] Touch '/public/components/jquery-ui'
[D] Touch '/public/components/jquery-ui/ui'
[D] Touch '/public/components/jquery-ui/ui/i18n'
[D] Touch '/public/components/jquery-ui/ui/minified'
[D] Touch '/public/components/jquery-ui/ui/minified/i18n'
>> Got diff for / 0 0 0
[D] Diff { upload: [], rm: [], rmDir: [] }
>> Got diff for /fancybox 0 0 0
[D] Diff { upload: [], rm: [], rmDir: [] }
>> Got diff for /fancybox/lib 0 0 0
[D] Diff { upload: [], rm: [], rmDir: [] }
>> Got diff for /fancybox/source 0 0 0
[D] Diff { upload: [], rm: [], rmDir: [] }
>> Got diff for /fancybox/source/helpers 0 0 0
[D] Diff { upload: [], rm: [], rmDir: [] }
>> Got diff for /jquery 0 0 0
[D] Diff { upload: [], rm: [], rmDir: [] }
>> Got diff for /jquery-migrate 0 0 0
[D] Diff { upload: [], rm: [], rmDir: [] }
>> Got diff for /jquery-ui 0 0 0
[D] Diff { upload: [], rm: [], rmDir: [] }
>> Got diff for /jquery-ui/ui 0 0 0
[D] Diff { upload: [], rm: [], rmDir: [] }
>> Got diff for /jquery-ui/ui/i18n 2 2 0
[D] Diff { upload: 
[ [ 'jquery.ui.datepicker-en-NZ.js',
    'af985e8d034123f14696aa116027760d' ],
    [ 'jquery.ui.datepicker-pt.js',
    '195beac164d3b2cfc5b8d02e98353834' ] ],
rm: [ 'jquery.ui.', '874 Aug 26 01:41 jquery.ui.datepicker-pt.js' ],
rmDir: [] }
[D] Upload 'jquery.ui.datepicker-en-NZ.js' '/jquery-ui/ui/i18n' 'af985e8d034123f14696aa116027760d'
[D] Upload 'jquery.ui.datepicker-pt.js' '/jquery-ui/ui/i18n' '195beac164d3b2cfc5b8d02e98353834'
[D] Delete 'jquery.ui.' '/jquery-ui/ui/i18n'
[D] Delete '874 Aug 26 01:41 jquery.ui.datepicker-pt.js' '/jquery-ui/ui/i18n'
>> Got diff for /jquery-ui/ui/minified 2 1 0
[D] Diff { upload: 
[ [ 'jquery.ui.effect-fold.min.js',
    '8074c41343e8123a8567de8af452fc72' ],
    [ 'jquery.ui.tabs.min.js', '490d0168365536638cb63e97b69494b1' ] ],
rm: [ '18572 Aug 26 01:41 jquery.ui.tabs.min.js' ],
rmDir: [] }
[D] Upload 'jquery.ui.effect-fold.min.js' '/jquery-ui/ui/minified' '8074c41343e8123a8567de8af452fc72'
[D] Upload 'jquery.ui.tabs.min.js' '/jquery-ui/ui/minified' '490d0168365536638cb63e97b69494b1'
[D] Delete '18572 Aug 26 01:41 jquery.ui.tabs.min.js' '/jquery-ui/ui/minified'
>> Got diff for /jquery-ui/ui/minified/i18n 2 1 0
[D] Diff { upload: 
[ [ 'jquery.ui.datepicker-en-NZ.min.js',
    'b00b8ee629d0f9a434368318d44d53d6' ],
    [ 'jquery.ui.datepicker-id.min.js',
    '137bebad13d3b64779c7717eaa6a1c93' ] ],
rm: [ '01:41 jquery.ui.datepicker-id.min.js' ],
rmDir: [] }
[D] Upload 'jquery.ui.datepicker-en-NZ.min.js' '/jquery-ui/ui/minified/i18n' 'b00b8ee629d0f9a434368318d44d53d6'
[D] Upload 'jquery.ui.datepicker-id.min.js' '/jquery-ui/ui/minified/i18n' '137bebad13d3b64779c7717eaa6a1c93'
[D] Delete '01:41 jquery.ui.datepicker-id.min.js' '/jquery-ui/ui/minified/i18n'
Warning: Cannot delete file: jquery.ui. --> Error: 550 Delete operation failed. Use --force to continue.

It looks like some kind of filename parsing error, as it is trying to remove file "jquery.ui." which obviously doesn't exist. Weird think is that sometimes if fails on different file (while the file which failed previously is OK, according to the log).

This task uses JSFtp internally. That, well... Doesn't work as expected quite often. And the parsing of directories is the most painful part. I don't think I'll be able to do anything about it fast. The previous bug I raised at JSFtp regarding same functionality hangs around for months without any reaction.

Probably I might try to switch to node-ftp instead. I'll leave the issue open for now but I don't have an idea whether I will be able to ever solve it and when it will happen. Sorry about that.

I understood. If there is any way I can help tracking that problem, just let me know.

Okay, I spent some time looking for better nodejs-based library but it doesn't look like there's something that can both – fit well and be reliable enough. So what you really can do it to use --simple key. It will make ftpush skip removals part and just upload what has changed locally. That's fine for most of times. It still allows you to use incremental updates and doesn't require sophisticated names parsing.

I see, at least some good news. Thanks much for your effort!