4

ここから HgEclipse を使用しています: http://www.javaforge.com/project/HGE

プラグインをテストするために、サーバーに新しいリポジトリを作成しました。リポジトリのクローンを作成し、いくつかのファイルを追加し、コミットしてプッシュしようとしましたが、次のエラーメッセージが表示されました...

abort: HTTP Error 500: Internal Server Error. Command line: 
/home/james/workspace/project:hg -y push http://***@[repository location], 
error code: 255

いくつかのグーグルから、255エラーは認証に関係していることがわかりますが、パスワードは正しいです。そうしないと、そもそもクローンを作成できません。

どんな助けや提案も大歓迎です。

ありがとう

編集:システムを最新バージョンに更新した後、プッシュ時にコマンドラインからこれを取得するようになりました(以前は機能していました):

abort: HTTP Error 500: Permission denied: .hg/store/data/path-to-file.i
4

2 に答える 2

6

Web サーバーがリポジトリに書き込めません。次のいずれかを実行できます

  • Webサーバーがそこで書き込み権限を取得できるように、ローカルリポジトリの権限を変更します(つまり、.hgの下(および含む)のすべてのファイルとディレクトリに対してchmodで書き込み権限を設定する必要があります。また、スティッキービットをに設定する必要がありますすべてのディレクトリ)
  • サーバーが所有する独自のリポジトリをWebサーバーに提供します。

Web サービスに独自のレポを与えると、次のようになります。

$ sudo bash
# mkdir /srv/repo-base
# chown www-data /srv/repo-base
# cd /srv/repo-base
# su -c "hg clone /path/to/current/repo web-repo-name" www-data
# vi /etc/apache2/sites-available/$SITE_CONFIG_FILE # change the repo path to /srv/repo-base/web-repo-name
# /etc/init.d/apache2 reload

この方法の欠点は、通常のユーザーには Web サーバー リポジトリへの書き込み権限がないため、Web サーバーのあるマシンでも http 経由でプッシュする必要があることです。

于 2011-08-30T13:53:46.117 に答える