Вы можете сохранить значение с помощью этого метода:
public void savePreferencesForReasonCode(Context context,
String key, String value) {
SharedPreferences sharedPreferences = PreferenceManager
.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(key, value);
editor.commit();
}
И используя этот метод, вы можете получить значение из SharedPreferences:
public String getPreferences(Context context, String prefKey) {
SharedPreferences sharedPreferences = PreferenceManager
.getDefaultSharedPreferences(context);
return sharedPreferences.getString(prefKey, "");
}
Здесь prefKey
- это ключ, который вы использовали для сохранения определенного значения. Спасибо.
Я столкнулся с этой же проблемой. Не уверен, как это относится к твоему, но это то, что сработало для меня. Сначала я объясню мои настройки. У меня есть репозиторий на моем живом сайте mysite.com У меня есть локальный репозиторий на локальном компьютере в папке mysite.com У меня есть другие репозитории, поэтому я добавляю настройки [ui] в файл /.hg/.hgrc в каждой папке репозитория на моем локальном компьютере вместо файла Mercurial.ini.
Во-первых, если вы уже подключились через Putty, сохраните сеанс, потому что Plink может использовать сохраненные сеансы. Используйте Pageant и добавьте свой ключ. Попробуйте запустить plink из командной строки для подключения с использованием сохраненного сеанса. Например, я сохранил свою сессию как «mysite» в Putty.
C:\>plink mysite
Using username "mysite".
Last login: Fri Feb 26 21:16:05 2010 from ca-xxx-xx-x-xxx.sta.host.net
←]0;mysite@server:~[mysite@server ~]$
Если это работает, попробуйте следующее в вашем файле .hgrc
[path]
default = ssh://mysite@myhost
[ui]
username = RB <admin@mysite.com>
ssh=plink.exe -ssh -i mysite
Plink установлен в моем PATH, и, поскольку сеанс mysite уже был сохранен в Putty, он знает, что делать ищите.
Я пытался сделать тягу, поэтому я тестировал, используя:
hg pull --debug --traceback
Надежда, которая помогает.
Редактировать: Извините, слишком поздно вы заметили, что используете шпатлевку. Надеюсь, это поможет в любом случае.
Возможно, дело в том, что «hg» не на пути. Вы можете увидеть из вызываемой командной строки, что «hg» запускается как «hg», что означает, что он должен находиться на пути к серверу. Попробуйте использовать опцию --remotecmd
для клонирования, чтобы указать полный путь к исполняемому файлу hg на сервере (удачи в правильном цитировании окон).
Возможно, ваш тест plink hg version
работает, потому что он запускается как интерактивная оболочка, которая получает другой путь - по крайней мере, который часто блокирует людей в unix.
У меня сейчас те же симптомы, хотя hg был немного полезнее после Ctrl+C - видимо, plink ждал, когда я скажу y/n, чтобы "сохранить сервер в кэш". К сожалению, hg не смог передать моё y/n в интерактивном режиме (и не сказал мне, что plink напечатал что-то важное...)
Решение:
-batch
в командную строку plink, чтобы в следующий раз это случилось, а не прервалось. Я также добавил свой ключ в страницу, чтобы больше нигде не вводить пароль.
Полный пример .hgrc файла (Win+R, блокнот %USERPROFILE%\.hgrc
):
[ui]
ssh=C:\Path\To\plink.exe -C -batch -ssh -i C:\Path\To\My\putty-private-ssh-key.ppk
Другой вариант будет пробовать версии Cygwin HG и SSH. Вы можете зарегистрировать проблемы SSH в этой версии с опцией -e; Например, HG Clone -e 'SSH -VVV' (Hidden)
В моем случае мне удалось подключиться к своему серверу один раз, но во второй раз это не удалось.
У меня такая же установка, и она отлично сработала ... но только один раз. В моих сохраненных сеансах ничего нет.
[ui]
ssh=C:\Path\To\plink.exe -C -batch -ssh -i C:\Path\To\My\putty-private-ssh-key.ppk