📄 todo
字号:
Bugs:- So far unreproducable synch mode bugs reported by David Massart- Possible that the WebDAV 422 seen against Cyberteams is a sitecopy bug.- Fetch mode for FTP rarely works- Synch mode will not retrieve deleted files when 'nodelete' is used.Known Standards Compliance Problems:- RFC959: handle telnet control characters?- RFC1945: better persistent connection handling for HTTP/1.0 servers- RFC2518: parse DAV:status- RFC2616: cope with long header lines.- RFC2617: possibly realm, domain issues. auth-int untested.Vague roadmap:0.8: Stable release after bug-ridden 0.7.0.9: [Currently under development] - Abstract out file state representation. - Dynamically update files list. Extensible info file format. - Add 'default' rcfile option. - 'Safe' option for sites.0.10: Solidity and stability - OOM, error reporting0.11: Protocols - HTTP/1.1 audit, FTP fetch mode testing.Big Features:- Get rid of namespace violations: *_t, str{strip,split}- Per-site lockfiles?- Interactive prompting for server/proxy username/passwords?- Display more meaningful errors for fetch mode- Parse DAV:status cdata, and collect only 2xx-type resources, ignore 4xx resources, do something meaningful with 3xx-type resources: fetch DAV:reftarget property and read symlink target. Report 5xx as error? - Frontends using other GUI toolkits, e.g. Qt, fltk, wx-Windows, Windows native, (n)curses.- Read HTTP proxy from HTTP_PROXY/http_proxy environment variable.- Support FTP proxying (how?)- Cope with out-of-memory situations i.e. malloc()/realloc() returns NULL- Internationalization and localization- WebDAV: do compressed transfer-encodings (use zlib?). Better error messages. Pipelining would be nice, but hard. PROPFIND: Okay to use encoding= etc? (not atm, it breaks IIS5-beta) - Store access permissions for local/remote, and mirror them properly. Support access permissions for WebDAV: custom live props, or ACL extns.- Symlink 'maintain' mode for FTP: can you create symlinks over FTP???- Rewrite to make _update + _synch etc dynamically update the files list.- Determine and remove or document files list order dependancies.- 'safety' option, which stores the REAL remote file mod time in the storage file, checks it before and retrieves it after doing a file update... MDTM both for FTP, If-Unmodified-Since + HEAD for WebDAV. A half-way house between no safety and the complete safety offered by file locking etc.- Change info file format to be extensible without breaking backwards compat. Probable grammar: <info file> := NULL | <single file info> <info file> <single file info> := <filename> EOL <fields> EOL <fields> := NULL | <field> TAB <field> <field> := <field type> <field contents> <field type> := 'A'...'Z' | 'a...z' <field contents> := <anything-but-TAB-or-EOL> Maybe use URI %<hex><hex>-type encoding for filenames...- Write complete documentation using GNU texinfo, for a printed manual and info pages.- IPv6 support.- Abstract out file state representation, make configurable. Allow specifying state by: a) Checksum (i.e. MD5) only <- good for spotting moved files, slow b) Modtime, size <- default, fast c) ...? Needed e.g. for people using RCS, where modtime will change on ci but file contents don't.Must-have-for-1.0 features:- Full RFC2068, 2518 compliance audit.Probably-not-till-after-1.0 features:- Use an better data structure for the files list, indexed by filename, to speed up site_readfiles, which has time O(n*m) (n=#local files, m= #remote files) at the moment. - Intelligent file movement detector, to spot whole moved directories, also renamed files (size/date match only, fuzzy match on name change? i.e. foo.html -> foo2.html).- Make the protocol drivers and sites code thread-safe.Little features:- SOCKS5 support.- Make the WebDAV code more modular - abstract out XML/207 response handling somewhat.- Synch mode: Only connect to the server when needed - i.e., moving/deleting local files -> no connection needed.- console: Allow user to update just a single file? --only=...?- Report corrupt info files back to the user.- Check write return codes in site_writefiles, signal the error if the info file doesn't get written properly.- Get WebDAV auth failures back to the user properly.- Get warning (i.e. non-fatal) messages to the user. Get rid of all the perror() calls if possible -> esp. in socket.c- Sort out error reporting between the various abstraction layers.- Add quota management, specify a per-site quota and only do update if the result means the site will stay under quota. -> problem: a directory uses up k's, but how many?- Check remote directory exists on initial connection in FTP (chdir/ls)- Rewrite to use seperate lists for local + remote files?- Nicer rcfile format - lex'n'yacc.- Optionally display FTP goodbye message for e.g. quota levels.- Allow default options to be specified in rcfile - nodelete, checkmoved, exclude, ascii, ftp *, http *.Things You Might Like to Do On A Rainy Day:- Investigate any extra handling needed for servers which have case insensitive filenames- Native Windows port (e.g. reimplement socket.c using the Winsock API)- Convince the maintainer that it's more productive to spend time implementing features than carefully crafting a mile-long TODO list.Gnome Stuff:- Integrating fetch-mode and resynch into the app.- Rescan (mucho different to refresh) for changing local root dirs without having to restart or hack the rcfile.- Panel applet for easily updating sites in a couple of clicks.- Rewrite the site tree population code to be more efficient. Hopefully convince Joe to change the way sitecopy stores files to something other than a linked list. As soon as I figure out myself what would be better that is.- Bring back optional 'slim' mode which will take up less desktop real estate.- Popup menus for the site/file tree.- Single file updates.- View files/dirs using gnome mime types.Long term GUI things:- Html based reports - integration into FE apps, and possible auto uploading to the remote site. (useful as a "recent changes" page)* Please send any suggestions you may have as to the format/design/type of reports that you might find useful.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -