Парный класс является одним из тех, которые "дай мне" примеры дженериков, который достаточно легко записать самостоятельно. Например, первое, что пришло на ум:
public class Pair<L,R> {
private final L left;
private final R right;
public Pair(L left, R right) {
this.left = left;
this.right = right;
}
public L getLeft() { return left; }
public R getRight() { return right; }
@Override
public int hashCode() { return left.hashCode() ^ right.hashCode(); }
@Override
public boolean equals(Object o) {
if (!(o instanceof Pair)) return false;
Pair pairo = (Pair) o;
return this.left.equals(pairo.getLeft()) &&
this.right.equals(pairo.getRight());
}
}
И да, это существует в нескольких местах в Сети с различными степенями полноты и функции. (Мой пример выше предназначается, чтобы быть неизменным.)
Это может быть очевидно, но не ясно из вашего сообщения. У вас есть msysgit \ bin
в вашем системном пути?
Кроме того, это не совсем ответ на ваш вопрос, но я обнаружил, что TortoiseGit недостаточно доработан. Я предпочитаю использовать Git Extensions .
Кажется, что приглашение bash от msysGit-fullinstall-1.6.4-preview20090729.exe
также добавляет msysGit \ mingw \ bin
в путь, поэтому чтобы использовать TortoiseGit и / или Git Extensions , я скопировал все файлы из msysGit \ mingw \ bin
в msysGit \ bin
и установите местоположение на git.exe
в обоих инструментах.
У меня не было ничего, кроме проблем с TortoiseGit.
Однако обнаружение следующего позволило мне сдаться раньше:
На вашем пути (в Панели управления-> Система-> Дополнительные настройки-> Параметры среды), добавьте путь, содержащий git.exe (msysgit \ bin или msysgit \ git? Инструкции TortoiseGit, черт возьми, мне не говорят, так откуда мне знать). Затем откройте командную строку и попробуйте запустить git.exe. Вероятно, он пожалуется, что не может найти libcurl-4.dll. Итак, вы обнаружите, что этот файл dll существует в msysgit \ mingw \ bin. Добавьте этот каталог в свой путь (или скопируйте dll, если хотите).
Теперь, похоже, установка в TortoiseGit, наконец, работает. Нажатие кнопки «Проверить сейчас» фактически сообщит вам версию git you ' re using вместо того, чтобы таинственным образом исчезнуть или выскочить бесполезное окно с ошибкой.
Когда вы попробуете использовать TortoiseGit сейчас, вы получите пустую полосу выполнения, которая ничего не делает, и вы не можете ее закрыть. Поздравляю! Теперь вы можете отказаться от этого мусора и удалить его, пока кто-нибудь не позаботится подготовить его для употребления в пищу. (вы можете сказать, что мне надоело это программное обеспечение?)
Ну, после моего сообщения я фактически получил TortoiseGit, работающий на одной из двух моих систем. Последним ключом было добавление каталога msysgit \ mingw \ bin к пути (чтобы git.exe мог найти libcurl-4.dll и, таким образом, не вызывать сбой всего без вывода сообщений). Я смог сделать это, используя TortoisePlink.exe по умолчанию, и мне не нужно было устанавливать GIT_SSH или что-то подобное. Я мог бы сказать, что это было легко (оглядываясь назад, достаточно просто ..), но на самом деле потребовалось около двух сеансов программирования, которые я предпочел бы провести более продуктивно.
Последним ключом было добавление каталога msysgit \ mingw \ bin к пути (чтобы git.exe мог найти libcurl-4.dll и, таким образом, не вызывать сбой всего без вывода сообщений). Я смог сделать это, используя TortoisePlink.exe по умолчанию, и мне не нужно было устанавливать GIT_SSH или что-то подобное. Я мог бы сказать, что это было легко (оглядываясь назад, достаточно просто ..), но на самом деле потребовалось около двух сеансов программирования, которые я предпочел бы провести более продуктивно. Последним ключом было добавление каталога msysgit \ mingw \ bin к пути (чтобы git.exe мог найти libcurl-4.dll и, таким образом, не вызывать сбой всего без вывода сообщений). Я смог сделать это, используя TortoisePlink.exe по умолчанию, и мне не нужно было устанавливать GIT_SSH или что-то подобное. Я мог бы сказать, что это было легко (оглядываясь назад, достаточно просто ..), но на самом деле потребовалось около двух сеансов программирования, которые я предпочел бы провести более продуктивно.