Поскольку все уже сказали это здесь: ответвление не мертво и соглашается на ответвление, может продолжиться очень хорошо.
Иногда, хотя Вы хотите уничтожить ответвление после слияния. Единственное надежно решение должно удалить ответвление. Оборотная сторона - то, что затем более трудно найти ответвление снова, если Вы хотели взглянуть на него, скажем, по историческим причинам. Так, многие люди разбрасывают "важную" ложь ответвлений и наличие соглашения о не изменении их. Мне жаль, что не было способа отметить мертвое/только для чтения ответвление, таким образом гарантируя, что никто не может согласиться на него до следующего приказа.
Продолжение:
Я не уверен, почему gitosis настаивал на повторном использовании плохого открытого ключа. Попытка заставить его взять правильный ключ не сработала.
Итак, сегодня я просто удалил и переустановил пакет gitosis на моем компьютере с CentOS5.
yum remove gitosis rm -rf /var/lib/gitosis yum install gitosis sudo -H -u gitosis gitosis-init < /tmp/id_rsa.gitosis.pub #the correct key
На моем Mac я SSH-туннель localhost: 22222 через межсетевой экран на gitosis-server: 22.
$ ssh -o ServerAliveInterval=3 -N -L 22222:gitosis-server:22 user@firewall.domain.com
На моем Mac я создал ~ / .ssh / config, который выглядит так ...
Host gitosis-server Hostname localhost IdentityFile ~/.ssh/id_rsa.gitosis HostKeyAlias gitosis-server.domain.com Port 22222
Тогда ... следуя инструкциям на этом сайте ...
http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way
... все после ... "Здесь происходит какое-то классное волшебство. Запустите это на своем локальном компьютере:" ... просто работает ... только не забудьте заменить имя пользователя "git" на "гитозис".
Надеюсь, вся эта чушь кому-то поможет. Спасибо также за предложения, которые я получил ... это помогло сузить проблему.
Мэтт
У меня есть аналогичная настройка для repo.or.cz (который по какой-то причине заблокирован нулевым маршрутом интернет-провайдером, который я использую, польским интернет-провайдером Telekomunikacja SA (tpnet)), и у меня это работает:
Я запускаю следующую команду, чтобы настроить туннель SSH перед попыткой подключения:
$ autossh -M 20000 -f -N -L 2222:repo.or.cz:22 user@gateway.example.com
(я использую autossh
вместо ssh
для повторного подключения, если я отключен, то есть для поддержания соединения). Убедитесь, что в агент аутентификации SSH добавлены соответствующие идентификаторы:
$ ssh-add -l
2048 d7:d3:69:f5:0f:f9:5e:aa:e0:0b:28:c2:03:42:09:66 /home/user/.ssh/id_dsa_gateway.example.com (DSA)
1024 11:a2:29:fe:37:12:a7:33:c4:23:b0:e1:82:92:e0:6a /home/user/.ssh/id_dsa_repo.or.cz (DSA)
Я использую связку ключей , чтобы предоставить пароли для моих личных ключей SSH только один раз при входе в систему.
У меня есть следующие настройки в моем ~ / .ssh / config
:
Host repo.or.cz # NoHostAuthenticationForLocalhost yes HostName localhost Port 2222
У меня эта настройка работает без проблем.
Что касается отладки вашей ситуации?
Во-первых, я бы проверил, могу ли я войдите в шлюз, используя "ssh"user@firewall.domain.com", to check if SSH tunnel can be set up. If you are on Linux you can use for example netstat --tcp
to check if there is connection established to gateway; on other operating systems and environments you can find similar utilities.
Check if you can connect correctly to gitosis. (If I remember correctly gitorious is using gitosis for managing access via SSH, so I used response from gitorious in example below)
$ ssh gitosis@gitosis-server Need SSH_ORIGINAL_COMMAND Connection to closed.
If it doesn't do something similar to above (repo.or.cz returns "fatal: What do you think I am? A shell?", GitHub returns "Hi user! You've successfully authenticated, but GitHub does not provide shell access."), check where it fails with "ssh -v gitosis@gitosis-server":
$ ssh -v gitosis@gitosis-server [...] debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Offering public key: /home/user/.ssh/id_dsa_gitosis-server debug1: Remote: Forced command: gitosis-server user [...] debug1: Authentication succeeded (publickey)
Вам нужно будет вернуть несколько фрагментов информации для вашего ответа. К счастью, вы можете легко сделать это с помощью JSON, и jQuery автоматически обработает его за вас, если вы укажете тип ответа json. Объект, который вы добавляете в свою функцию обратного вызова ajax, будет содержать все необходимые вам фрагменты данных в виде различных свойств.
Я бы посоветовал выработать привычку возвращать код состояния «успех» или «сбой» при каждом вызове ajax. , и набор ошибок с ним. См. Этот замечательный пост в блоге для получения дополнительной информации о том, что я имею в виду.
Причина этого в том, что вызов ajax всегда будет в основном «успешным», если только сервер действительно не сможет обработать запрос и не вернет код состояния HTTP сбоя. Если результатом запроса является что-то вроде ошибки проверки, но сервер по-прежнему возвращает какой-то текстовый ответ, тогда вызов ajax по-прежнему считается успешным, даже если операция приложения не удалась.
Итак, если в вашем action, вместо того, чтобы возвращать ваши html-данные в результате действия, если вы вернули такой объект:
public class AjaxResponse
{
/// <summary>
/// Initializes a new instance of the <see cref="AjaxResponse"/> class.
/// This creates an AjaxResponse that by default indicates SUCCESS.
/// </summary>
public AjaxResponse()
{
Success = true;
Data = new List<object>();
}
/// <summary>
/// Initializes a new instance of the <see cref="AjaxResponse"/> class.
/// This creates an AjaxResponse that indicates FAILURE.
/// </summary>
/// <param name="exception">The exception.</param>
public AjaxResponse(Exception exception)
: this()
{
Success = false;
Errors = new [] { exception.Message };
}
/// <summary>
/// Initializes a new instance of the <see cref="AjaxResponse"/> class.
/// This creates an AjaxResponse that indicates SUCCESS.
/// </summary>
/// <param name="data">The data.</param>
public AjaxResponse(object data)
: this()
{
Data = data;
}
/// <summary>
/// Gets or sets a value indicating whether this <see cref="AjaxResponse"/> is success.
/// </summary>
/// <value><c>true</c> if success; otherwise, <c>false</c>.</value>
public bool Success
{
get; set;
}
/// <summary>
/// Gets or sets the data.
/// </summary>
/// <value>The data.</value>
public object Data
{
get; set;
}
/// <summary>
/// Gets or sets the errors.
/// </summary>
/// <value>The errors.</value>
public string[] Errors
{
get; set;
}
}
Это преобразуется в объект javascript, который имеет свойства «.Success», «.Data» и «.Errors».
этот объект, чтобы получить рекомендованный
прямоугольники рамки для вашего
ssh -v
сообщит вам, так ли это в вашей ситуации.
Edit
Похоже, что сервер sshd не принимает вашу личность. Я не знаю, есть ли у вас доступ к удаленному серверу, но запуск сервера sshd
в режиме отладки может помочь.
Выполнение чего-то подобного разрешает одно соединение с данным портом (так что это не не прерывает нормальную службу sshd
) и выводит отладочную информацию. Это может помочь в отладке, почему серверу не нравится ваша личность.
sshd -d -p 2022
Если ваша «нормальная» служба sshd работает с дополнительными параметрами, обязательно укажите их и в отладочной версии.
но запуск сервера sshd
в режиме отладки может помочь.
Выполнение чего-то подобного разрешает одно соединение с заданным портом (так что это не прерывает нормальную службу sshd
) и выводит отладочную информацию. Это может помочь в отладке, почему серверу не нравится ваша личность.
sshd -d -p 2022
Если ваша «нормальная» служба sshd работает с дополнительными параметрами, не забудьте указать их и в отладочной версии.
но запуск сервера sshd
в режиме отладки может помочь.
Выполнение чего-то подобного разрешает одно соединение с заданным портом (так что это не прерывает нормальную службу sshd
) и выводит отладочную информацию. Это может помочь в отладке, почему серверу не нравится ваша личность.
sshd -d -p 2022
Если ваша «нормальная» служба sshd работает с дополнительными параметрами, не забудьте указать их и в отладочной версии.
Вы говорите, что можете успешно использовать ssh на localhost: 2222
. Чтобы проверить, что вы настроили ~ / .ssh / config
правильно, можете ли вы использовать ssh только на gitosis-server
?
ssh gitosis-server