12

プレーヤー

私はここ数ヶ月gitとgitosisを使用していて、両方を本当に愛しています。残念ながら、gitosisを使用してプロジェクトの1つにアクセスする際に問題が発生しました。

セットアップ

Debianを実行しているホストされたサーバーアカウントにgitとgitosisのインストールを設定しました。また、個別のrsaキーを使用して4台のコンピューター(2台のUbuntu、2台のWindows)をセットアップし、それぞれがgitosisインストールにアクセスするように正常にセットアップしました。しばらくの間、すべてがスムーズに機能しました。しかし最近、「DesktopConfiguration」プロジェクトに何らかの方法(プッシュ、プル、クローン)でアクセスできなくなりました。私はもともと、Linuxマシンの1つでDesktopConfigurationプロジェクトを作成し、それをgitosisサーバーにプッシュして、Windowsマシンの1つに複製しました。最近(過去2週間ほど)まで問題なくアクセスできました。以下は、私のgitosis.confファイルと私が受け取っているエラーメッセージです(エラーメッセージは、WindowsまたはLinuxボックスを使用してプッシュ、プル、またはクローンを作成しようとしても同じです)。

フック

gitosis.conf

[gitosis]  
loglevel = DEBUG  

[group gitosis-admin]  
writable = gitosis-admin  
members = windows-desktop linux-desktop linux-laptop work-laptop  

[group main-projects]  
writable = WallpaperChanger  
writable = RegexTester  
writable = MovieAggregator  
writable = FileRenamer  
writable = GlutenFreeShoppingAssistant  
writable = Libraries  
writable = DesktopConfiguration  
writable = RssFeedReader  
members = windows-desktop linux-desktop linux-laptop work-laptop  

エラーメッセージ

C:\Documents and Settings\myname\Desktop\Desktop Config Test>git clone git@myserver:DesktopConfiguration.git  
Initialized empty Git repository in C:/Documents and Settings/myname/Desktop/Desktop Config Test/DesktopConfiguration/.git/  
DEBUG:gitosis.serve.main:Got command "git-upload-pack 'DesktopConfiguration.git'"  
DEBUG:gitosis.access.haveAccess:Access check for 'work-laptop' as 'writable' on 'DesktopConfiguration.git'...  
DEBUG:gitosis.access.haveAccess:Stripping .git suffix from 'DesktopConfiguration.git', new value 'DesktopConfiguration'  
DEBUG:gitosis.group.getMembership:found 'work-laptop' in 'main-projects'  
DEBUG:gitosis.group.getMembership:found 'work-laptop' in 'gitosis-admin'  
DEBUG:gitosis.access.haveAccess:Access check for 'work-laptop' as 'writeable' on 'DesktopConfiguration.git'...  
DEBUG:gitosis.access.haveAccess:Stripping .git suffix from 'DesktopConfiguration.git', new value 'DesktopConfiguration'  
DEBUG:gitosis.group.getMembership:found 'work-laptop' in 'main-projects'  
DEBUG:gitosis.group.getMembership:found 'work-laptop' in 'gitosis-admin'  
DEBUG:gitosis.access.haveAccess:Access check for 'work-laptop' as 'readonly' on 'DesktopConfiguration.git'...  
DEBUG:gitosis.access.haveAccess:Stripping .git suffix from 'DesktopConfiguration.git', new value 'DesktopConfiguration'  
DEBUG:gitosis.group.getMembership:found 'work-laptop' in 'main-projects'  
DEBUG:gitosis.group.getMembership:found 'work-laptop' in 'gitosis-admin'  
ERROR:gitosis.serve.main:Repository read access denied  
fatal: The remote end hung up unexpectedly  

物語

gitosisの経験とオンラインで見つけたほとんどの質問と回答から、エラーメッセージは、マシンがアクセスできるグループにプロジェクトを最初に追加せずにgitosisにプッシュしようとしたときに受信したメッセージとまったく同じように見えます。 。残念ながら、私の場合、これは当てはまらないようです。(私が何かを逃していない限り!)

ワイヤー

これでさらに情報が得られるかどうかは正確にはわかりませんが、更新後のフックからのデバッグメッセージは次のとおりです。

INFO:gitosis.run_hook:Running hook post-update  
DEBUG:gitosis.gitdaemon:Global default is 'deny'  
DEBUG:gitosis.gitdaemon:Walking '.', seeing ['RegexTester.git', 'gitosis-admin.git', 'Libraries.git', 'GlutenFreeShoppingAssistant.git', 'MovieAggregator.git', 'DesktopConfiguration.git', 'WallpaperChanger.git', 'RssFeedReader.git', 'FileRenamer.git']  
DEBUG:gitosis.gitdaemon:Deny 'RegexTester'  
DEBUG:gitosis.gitdaemon:Deny 'gitosis-admin'  
DEBUG:gitosis.gitdaemon:Deny 'Libraries'  
DEBUG:gitosis.gitdaemon:Deny 'GlutenFreeShoppingAssistant'  
DEBUG:gitosis.gitdaemon:Deny 'MovieAggregator'  
DEBUG:gitosis.gitdaemon:Deny 'DesktopConfiguration'  
DEBUG:gitosis.gitdaemon:Deny 'WallpaperChanger'  
DEBUG:gitosis.gitdaemon:Deny 'RssFeedReader'  
DEBUG:gitosis.gitdaemon:Deny 'FileRenamer'  
INFO:gitosis.run_hook:Done.  

シャットアウト

すべてのマシンで、サーバー上の他のすべてのプロジェクト(gitosis-adminグループとmain-projectsグループの両方)に引き続きアクセス(プッシュ、プル、クローン)できます。これまでに私が試みたいくつかのことを次に示します。

  • すべてのフォルダー、ファイル、および構成設定のスペルを複数回確認しました。
  • 更新後のフックに適切な実行権限があることを確認した後、gitosis.confファイルからDesktopConfigurationプロジェクトを削除して再度追加しました。
  • DesktopConfigurationの後に別のプロジェクトをgitosisに追加しましたが、正しく機能します。
  • ローカルマシンのgitで、プロジェクトへのリモート参照を削除して再度追加しました。
  • サーバーの「repositories」フォルダーからDesktopConfiguration.gitプロジェクトを削除し、再度プッシュしようとしました。
  • すべてのrsaキーを再作成しました(ただし、認証は私が見ている問題とは何の関係もないようです)。

これらの試みはすべて、私がプロジェクトにアクセスすることを許可することに失敗しました。私の知る限り、このプロジェクトにアクセスできなくなった頃は、サーバーやデスクトップマシンで何も変わっていませんでした。

スティング

私はあなたが両手を広げて持っているかもしれないどんな洞察も歓迎します!

4

4 に答える 4

4

「読み取りアクセスが拒否されました」の場合、サーバー上のgitosisユーザーがまだリポジトリへのフルアクセスを持っていることを確認します。サーバー上で何も変更されていないことは確かだとあなたは言いますが、他の多くのことを除外しました。再確認しても問題ありません。

于 2010-08-12T08:01:10.843 に答える
3

signineはコメントの返信でそれを正しく理解したようです。私は同じ問題を抱えていましたが、(いくつかの嘆きと歯ぎしりの後)最終的にすべてのリポジトリを単一の「書き込み可能な」行に配置することで問題を修正しました。

ソースを調べると、gitosisがConfigParserを使用していることがわかります。これには、オプションを1行に表示する必要があります。または、次の行の先頭にスペースを残すと、行を中断できます。したがって:

writable = WallpaperChanger RegexTester MovieAggregator FileRenamer

また

writable = WallpaperChanger RegexTester
           MovieAggregator FileRenamer
于 2010-12-17T18:58:44.980 に答える
1

私も同様の問題を抱えていましたが、問題は非常に単純でした:

同じ公開鍵を使用して2つの異なる鍵ファイルを誤って作成した結果、サーバーは私を(このリポジトリへの読み取り/書き込みアクセス権を持つ)自分ではなく、この新しいユーザー(特定のリポジトリへの権限を持たない)として認識しました。

これで頭をかいてしまったので、シェアしたいと思いました。

于 2013-02-18T19:47:38.850 に答える
0

私はそのような線を持っているのを見ました

writable =

すべてのリポジトリへのアクセスを中断する可能性があります。これは、gitosis.confが自動生成され、グループにリポジトリがないシナリオに到達したために発生しました。

于 2011-08-01T17:10:42.823 に答える