2

次を使用してリポジトリをSVNにインポートしようとしています:

svn import /home/guest/Desktop/first_repo/ file:///var/www/svn/repos/first_one -m "first repository"

このコマンドを起動すると、追加されたファイルの大きなリストが表示され、最終的に以下のエラーで終了します。

svn: Can't move '/var/www/svn/repos/db/txn-protorevs/1-d.rev' to
'/var/www/svn/repos/db/revs/0/2': Permission denied

ディレクトリとその中のすべてのファイルのパーミッションを 777 に変更しreposました。selinux を無効にしました。

それから、私は同じことを試しましたSuper User:それは追加され、チェックアウトもできます。しかし、(通常のユーザーとして)いくつかの変更をコミットしようとすると、同じエラーが再び発生します。

Transmitting file data .svn: Commit failed (details follow):
svn: Can't move '/var/www/svn/repos/db/txn-protorevs/1-e.rev' to
'/var/www/svn/repos/db/revs/0/2': Permission denied

今、私は2つの質問があります:

  1. svn import必須であり、次のように実行する必要がありSuper Userますか? はいの場合、通常のユーザーとしてコミットできないのはなぜですか? (私は 777 の許可を与えています)
  2. 私は何か間違ったことをしていますか?
4

2 に答える 2

2

最後に、私は自分で答えを得ました。
問題は、ファイルがアクセス許可を持っ/var/www/svn/repos/db/transactions/var/www/svn/repos/db/txn-protorevsいないことです。これらのフォルダーに 777 のアクセス許可を与えましたが、それらのフォルダー内のファイルにアクセス許可を与えるのを忘れていました。

そのため、すべてのフォルダーとファイルのアクセス許可を正しく確認する必要があります。ありがとうございました。

于 2013-08-22T07:10:31.387 に答える
1

私のシナリオは、サーバー上に新しいレポを作成し、クライアントからインポートしようとしていました。

すべてのグループとユーザーのアクセス許可、およびファイルのアクセス許可を、同じサーバー上の作業リポジトリと比較しました。すべて一致しているにもかかわらず、同じ「書き込みできません...」というエラーが繰り返し表示されました。

サーバーとクライアントの svn のバージョンを確認したところ、マイナーな不一致が見つかりました。サーバーは 1.7.9 を実行し、クライアントは 1.7.19 を実行していました。戻って別のリポジトリを作成しましたが、「--pre-1.6-compatible」フラグを使用して作成しました:「svnadmin --pre-1.6-compatible create repo-new」

その後、すべて正常に機能しました。

于 2015-04-21T02:33:10.097 に答える