On 28.01.2015 10:54, Stefan Sperling wrote: > I'd like to start a vote about merging the pin-externals branch to trunk.
I think this is ready to be merged to trunk, but there are two outstanding issues that really need to be addressed before we release: * When the source of the copy is the repository, the current implementation can potentially open and close a zillion RA sessions. It does not even attempt to detect if they're sessions to the same repository, and consequently does not reuse sessions. A lot of work has been spent in reducing the number of RA sessions opened during an operation, so this is really unacceptable. * When the target is the working copy, the current implementation overrides the ignore-externals flag during the copy until the externals are pinned. However, no attempt is made to remember the original value of this flag. Also, I think there's a fundamental problem with the approach to pinning when the WC is the target: if the copy succeeds, but pinning the externals fails for whatever reason -- even a cancellation -- the working copy will be in an inconsistent state. IMO, the code should queue up WC work items for the actual pinning, so that the pinning can be rolled forward (or reverted) completely, not left in a half-baked state. -- Brane