Up for debate: an update on multiple targets is not atomic. Right now, svn_client_update only takes one path. What's debatable is whether this should ever change. On the one hand, it's kind of losing to have the client application loop over targets and call svn_client_update() on each one; each call to update initializes a whole new repository session (network overhead, etc.) On the other hand, it's a very simple implementation, and allows for the possibility that different targets may come from different repositories.