On Sat, Jan 18, 2003 at 12:25:05AM -0800, Wayne Davison wrote: > On Fri, Jan 17, 2003 at 11:39:31PM -0800, Craig Barratt wrote: > > If mkstemp() fails (for various reasons, including the directory not > > existing) then fd == -1. So the first if () executes, which flushes > > the data and does a continue. So the next two if () statements will > > never execute. > > Good catch. The code got tweaked into this form in version 1.32 when it > was changed from a set of calls (using do_mktemp() and do_open()) into a > single call (using just do_mkstemp()). At that point the new (simpler) > error-check section got added, and it made it impossible to get down to > the older section. > > > Is rsync meant to create deep directories that don't exist? > > Not usually. In -R mode, it sends implied directories for the files, so > it should be the case that the directories are normally created already. > I find it interesting that this old code exists because there has been a > lot of talk about the sending of implied directories (and an option to > turn this off). If we put this code back the way it was back in 2001, > then the newly suggested --no-implied-dirs option would not cause rsync > to fail if a deep file didn't have a directory yet -- rsync would just > create the intervening directories. I'm not sure if I want it to do > that or not at the moment. > > ...wayne..
I removed the error check that skipped the creation of the directory, just a piece of the code that was added in version 1.32. It's pretty clear to me that it was just an oversight, because Tridge also modified the dead code leg. - Dave -- To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync Before posting, read: http://www.tuxedo.org/~esr/faqs/smart-questions.html