проблемы msysgit

Разделите Человека на подклассы дважды, однажды для получателя и однажды для отправителя, и только поместите XmlRootElement на эти подклассы (оставляющий суперкласс, Person, без XmlRootElement). Обратите внимание, что отправитель и получатель оба совместно используют те же базовые классы JAXB.

@XmlRootElement(name="person")
public class ReceiverPerson extends Person {
  // receiver specific code
}

@XmlRootElement(name="person")
public class SenderPerson extends Person {
  // sender specific code (if any)
}

// note: no @XmlRootElement here
public class Person {
  // data model + jaxb annotations here
}

[протестированный и подтвержденный для работы с JAXB]. Это обходит проблему, которую Вы отмечаете, когда несколько классов в иерархии наследования имеют аннотацию XmlRootElement.

Это - возможно также более опрятное и больше подхода OO, потому что он выделяет модель общих данных, таким образом, это не "обходное решение" вообще.

7
задан 30 September 2009 в 12:56
поделиться

4 ответа

Вам необходимо установить Pageant и добавить в него ключ.

Также дважды проверьте, что ваша переменная среды GIT_SSH настроена на использование plink

1
ответ дан 7 December 2019 в 01:23
поделиться

Есть ли что-нибудь (т.е. хотя бы одна фиксация) в удаленном репозитории?

git говорит: «предупреждение: вы, кажется, клонировали пустой репозиторий»

и когда хотите чтобы вставить пустое удаленное репо, вы должны использовать:

git push URL master
0
ответ дан 7 December 2019 в 01:23
поделиться

Have you tried connecting from Git-Bash with ssh user@host:port? Does it connect directly or ask for a password?

Port is only required if you are using a non-standard port for ssh otherwise it will default to 22. It is one thing from Putty but make sure you can connect from git bash because it will generally have its own key store in a .ssh directory off of your user directory. If you cannot get that to work from Git-Bash you need to fix the key or debug where the problem is, try specifying the key by using

ssh -i keyfile user@host:port

if that doesn't work or prompts you for a password on the remote machine it means the key exchange is not working properly. So you need to go through checking the keys are setup properly with regards to the Git-Bash environment. In particular make sure that you have exported the RSA key and are not just using the ppk key with Git-Bash. I do not believe that is supported. I don't use Tortoise-Git so I can't help with that, but I do use Git Bash regularly.

0
ответ дан 7 December 2019 в 01:23
поделиться

Вот немного контрольного списка:

  1. Включен ли ssh на сервере, к которому вы пытаетесь подключиться?
  2. GIT установлен на сервере?
  3. У вас настроен репозиторий Git на сервере?
  4. Имеются ли у репозитория правильные разрешения и включен ли общий репозиторий в конфигурации на сервере?
  5. У вас есть ключи ssh в нужном месте для GIT?

    Предложения:

1: Поскольку вы можете подключиться с помощью putty, похоже, что ssh настроен нормально.

2: Используйте putty и подключитесь к серверу. Введите git --version Получите ли вы разумный ответ? Если нет, вам нужно будет установить его на сервере.

3: Попробуйте создать новый репозиторий на сервере. Предполагая, что его сервер в стиле a * nix использует шпатлевку, подключается к серверу и создает новый репозиторий, используя следующие команды, при условии, что у вас есть каталог / home / source_code. Строка эха просто создает файл с небольшим количеством текста, так что нам есть с чего начать.

cd /home/source_code
mkdir test_repo
cd /home/source_code/test_repo
echo "first file" > t.txt
git init
git add .
git commit -m "Initial Import"

Итак, теперь у нас есть репозиторий с одним файлом t.txt в нем. Как правило, вы никогда не должны отправлять данные в репозиторий, содержащий изменения в рабочей копии. Цель наличия репозитория на сервере состоит в том, чтобы люди могли постоянно заходить в него. Мы делаем «голый» клон, который представляет собой только базу данных git, таким образом, нет возможности изменения рабочей копии. Именно этот «голый» клон мы будем использовать в качестве центрального репозитория git.

cd /home/source_code
git clone --bare test_repo/ test_repo.git

Теперь вы можете избавиться от созданного нами временного репозитория.

cd /home/source_code/
rm -rf test_repo

На локальном компьютере попробуйте клонировать еще раз.

git clone ssh://user@host.com:port/home/source_code/test_repo.git

4: Разрешения: Это не должно вызывать проблем с клонированием, получением или извлечением, если вы не выбрали место для репозитория, у которого нет доступа для чтения. Если вы получаете ошибку Permission denied при отправке назад, обратитесь к Исправление разрешений

5: Настройка открытого / закрытого ключа для GIT:

  1. Подключитесь к серверу с помощью putty
  2. Установите разрешения для вашего ~ / Папка .ssh: chmod 700 .ssh
  3. Установите разрешения для ваших ~ / .ssh / authorized_keys: chmod 600 authorized_keys
  4. Создайте ключи ssh-keygen -t dsa
  5. Принять имена файлов, которые он хочет использовать
  6. Не вводите кодовую фразу (просто введите). Позже вы захотите повторить это с парольной фразой.
  7. добавьте ключ pub в файл authorized_keys: cat id_dsa.pub >>. ssh / authorized_keys
  8. отредактируйте / etc / ssh / ssh_config и добавьте строку PubkeyAuthentication yes
  9. перезапустите демон ssh sudo /etc/init.d/ssh restart
  10. Скопируйте id_dsa и id_dsa.pub с сервера на ваш локальный жесткий диск (используйте winscp, sftp или какой-либо другой подобный инструмент) c: \ users \ userName \ .ssh каталог (это для перспективы, местоположение будет немного отличается для других версий Windows)
  11. Установите git черепахи так, чтобы он указывал на C: \ Program Files \ Git \ bin \ ssh.exe (не putty)

Как git, так и git черепахи должны быть настроены на Работа. Попробуйте снова клонировать на своем локальном компьютере.

git clone ssh://user@host.com:port/home/source_code/test_repo.git

Теперь вы можете пойти и повторить настройку ключей с парольной фразой ....

d / ssh restart
  • Скопируйте id_dsa и id_dsa.pub с сервера на локальный жесткий диск (используйте winscp или sftp или какой-либо другой подобный инструмент) c: \ users \ userName \ Каталог .ssh (это для перспективы, расположение будет немного другим для других версий Windows)
  • Установите git черепахи так, чтобы он указывал на C: \ Program Files \ Git \ bin \ ssh.exe (не putty)
  • И командная строка git, и черепаха git должны быть настроены для работы. Попробуйте снова клонировать на своем локальном компьютере.

    git clone ssh://user@host.com:port/home/source_code/test_repo.git
    

    Теперь вы можете пойти и повторить настройку ключей с парольной фразой ....

    d / ssh restart
  • Скопируйте id_dsa и id_dsa.pub с сервера на локальный жесткий диск (используйте winscp или sftp или какой-либо другой подобный инструмент) c: \ users \ userName \ Каталог .ssh (это для перспективы, расположение будет немного другим для других версий Windows)
  • Установите git черепахи так, чтобы он указывал на C: \ Program Files \ Git \ bin \ ssh.exe (не putty)
  • И командная строка git, и tortoise git должны быть настроены для работы. Попробуйте снова клонировать на своем локальном компьютере.

    git clone ssh://user@host.com:port/home/source_code/test_repo.git
    

    Теперь вы можете пойти и повторить настройку ключей с парольной фразой ....

    ssh (это для перспективы, расположение будет немного другим для других версий Windows)
  • Установите git черепахи так, чтобы он указывал на C: \ Program Files \ Git \ bin \ ssh.exe (не putty)
  • Оба командная строка git и tortoise git должны быть настроены для работы. Попробуйте снова клонировать на своем локальном компьютере.

    git clone ssh://user@host.com:port/home/source_code/test_repo.git
    

    Теперь вы можете пойти и повторить настройку ключей с парольной фразой ....

    ssh (это для перспективы, расположение будет немного другим для других версий Windows)
  • Установите git черепахи, чтобы он указывал на C: \ Program Files \ Git \ bin \ ssh.exe (не замазка)
  • Оба командная строка git и tortoise git должны быть настроены для работы. Попробуйте снова клонировать на своем локальном компьютере.

    git clone ssh://user@host.com:port/home/source_code/test_repo.git
    

    Теперь вы можете пойти и повторить настройку ключей с парольной фразой ....

    9
    ответ дан 7 December 2019 в 01:23
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: