I need to check in my changes for the build… but I cannot connect.

This is an issue that affects SCM companies that entertain remote management and configuration management in band (Internet) since it relies on the notion of the cheap and available access to the paying parties. Often cheap is at the expense of available.

The challenge is that most modern code repository approaches are developed by developers that enjoy LAN speed access to their own development environments. So, finding a repository project or product that anticipates and caters to high latency, interrupt prone WAN connections can be challenging.

Why did someone build something assuming LAN speeds?

Failings in code management software are not so much failings as they are due to the market following the traditional issues. The economics of remote development tend to dictate that you spend even LESS on the infrastructure to facilitate development.

Instead of the anticipation of that environment, there are companies that might seek to augment a traditional repository solution via software or even hardware compression/store/forward methods (Juniper Peribit, Cisco WAAS, etc.).

Ultimately, the best practices of development that acknowledge and anticipate the problems of latency, outages, and general remote challenges will fare better than those that strictly rely upon a magic box or software add-on. In those cases, a hosted subversion service that takes into account the most widely connected (i.e. best avg LCD latency values) might be a better approach than having a hub and spoke design that relies upon poor or underfunded corporate headquarter bandwidth. Obvious concerns over security cannot be ignored but there are numerous export friendly encryption methods to satisfy LCD approach.