Следующее определит, подключены ли Вы к сети, однако, который не обязательно означает, что Вы подключены к Интернету:
NetworkInterface.GetIsNetworkAvailable()
Вот перевод C# кода Steve, который, кажется, довольно хорош:
private static int ERROR_SUCCESS = 0;
public static bool IsInternetConnected() {
long dwConnectionFlags = 0;
if (!InternetGetConnectedState(dwConnectionFlags, 0))
return false;
if(InternetAttemptConnect(0) != ERROR_SUCCESS)
return false;
return true;
}
[DllImport("wininet.dll", SetLastError=true)]
public static extern int InternetAttemptConnect(uint res);
[DllImport("wininet.dll", SetLastError=true)]
public static extern bool InternetGetConnectedState(out int flags,int reserved);
Теоретически вы можете использовать git grafts , чтобы объединить ваши репозитории в один:
См. «Есть ли чистый способ обработки двух исходных репозиториев git, которые запускались с одним и тем же содержимым?»
На практике вы можете посмотреть другой инструмент, например cvs2git , и проверить, не он не импортирует ветви более последовательным образом.