自動バックアップスクリプトでのログインの処理
質問
mercurialを使用してディレクトリをバックアップするために、毎日実行するようにスケジュールするシェルスクリプトを作成する必要があります。スクリプトの実行中に自動ログインを行う方法を見つけ出すことができる以外は、ほとんどのユースケースを完了しました。
for REPOSITORY in $@
do
cd $REPOSITORY
# commit the changes
hg commit -A -m "Commit changes `date`"
# push the changes to the remote repository
if hg push
then
logger hg push success
else
logger hg push failure
fi
done
hg pushコマンドが発行されると、ログインプロンプトが表示されます。
解決
Mercurialでは、リポジトリURLにユーザー名とパスワードを入力できます。
hg push http://username:password@hg.myco.com/repo
コマンドラインにURLを配置したくない場合は、 hgrc
ファイルをローカルリポジトリに保存し、ユーザー名とパスワードを default-push
URLに入力します:
default-push = http://username:password@hg.myco.com/repo
これは、 hg push
が hgrc
ファイルで指定されたユーザー名を使用することを意味します。
他のヒント
非対話型ログイン用にバックアップスクリプトを構成する必要があることに同意します。 1つの方法は、 SSHキーを使用するおよびより簡単な解決策は、URLに直接パスワードを含めることです。
Mercurial 1.3では、構成ファイルにHTTPパスワードを簡単に含めることができます。私は今
を持っています[auth]
bb.prefix = https://bitbucket.org/mg/
bb.username = mg
bb.password = pw
構成ファイルのセクション。つまり、パスワードを複数のファイルに保存せずに、1つのファイルの保護のみに集中できます。
実際、私はパスワードを〜/ .hgrc
に入れないようにするために別の新機能を使用しています。なぜなら、そのファイルを他の人に見せたいからです。代わりに私は
%include .hgauth
〜/ .hgrc
および〜/ .hgauth
には上記の [auth]
セクションがあり、私だけが読むことができます。
所属していません StackOverflow