final JGitPathImpl target,
final CopyOption... options ) {
checkCondition( "source and taget should have same setup", !hasSameFileSystem( source, target ) );
if ( !exists( source ) ) {
throw new NoSuchFileException( target.toString() );
}
boolean targetExists = existsBranch( target );
if ( targetExists && !contains( options, StandardCopyOption.REPLACE_EXISTING ) ) {
throw new FileAlreadyExistsException( target.toString() );