Separate abspath from _remote_path, the intents are different.
* bzrlib/transport/sftp.py:
(SFTPUrlHandling._combine_paths_respecting_home_dir): New method.
(SFTPUrlHandling.abspath): Take home dir into account explicitely.
(SFTPUrlHandling._remote_path): Simplified.
(SFTPTransport.__init__): Cleanup cloning.
* bzrlib/transport/http/_urllib.py:
Revert the previous _remote_path -> _unqualified_abspath renaming.
* bzrlib/transport/http/_pycurl.py:
Revert the previous _remote_path -> _unqualified_abspath renaming.
* bzrlib/transport/http/__init__.py:
(HttpTransportBase._remote_path): Re-introduce _remote_path
instead of _unqualified_abspath.
* bzrlib/transport/ftp.py:
(FtpTransport.__init__): Cleanup cloning.
(FtpTransport.clone): Deleted. The inherited one is enough.
* bzrlib/transport/__init__.py:
(ConnectedTransport.__init__): Copy password *after* splitting the
url if needed.
(ConnectedTransport.clone): Generic clone method.
(ConnectedTransport._split_url): Cleanup.
(ConnectedTransport._initial_split_url): New method that daughter
classes can override.
(ConnectedTransport.abspath): Do not call _remote_path, the intent
is different.
* bzrlib/tests/test_transport_implementations.py:
Cleanup imports.
(TransportTests.test_clone_preserve_info): New test.
* bzrlib/tests/test_sftp_transport.py:
(FakeSFTPTransport): Add a dummy get_connection method.
(SFTPNonServerTest.test_parse_url_with_home_dir): Temporarily
disable the password checking.