1

Windows XP の 32 ビット マシンで、次を使用して libgit2 リポジトリのクローンを作成しました。

git clone git://github.com/libgit2/libgit2.git trunk

次に、次を使用してmingwのtrunk_build_debugから構成しました。

cmake ../trunk -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=-g 

そして、それを構築しました

make

この新しくビルドされたライブラリを使用して、新しいリポジトリを作成しようとしています。だから私は使用しています

    error_code = git_repository_init( &repo, path, 0 );
    if ( error_code != 0 )
    {
        const git_error * error = giterr_last();
       /* the text representation:
        ( error == NULL || error->message == NULL ? 
        "(no description)" : 
        error->message )
        */
    }

最初の試行では、これはエラー メッセージで失敗します。

Git エラー -1: グローバル ファイル '.config/git/config' が存在しません: 指定されたファイルが見つかりません。

.git ディレクトリが作成され、これを使用git statusしてクエリを実行できます。また、Program Files/git に git をインストールしましたが、問題なく動作します。言及されているファイルはユーザー ディレクトリに存在しません。これは事実です。返されたエラー コードを確認できないため、満足できません (エラーは「本物」である可能性があります)。

そのため、D:\Documents and Settings\User Name.config\git\config に空のファイルを作成しました。.git ディレクトリが再度作成されますが、同じ -1 エラー コードが表示されます。今度は giterr_last() が NULL を返します。

デバッガーでコードをトレースすると、ライブラリが空のファイルに満足していないことがわかります。

しかし、これは私が何か間違ったことをしていることを示していると思います。初期化方法はありますか?ファイルを作成し、git_config_ 関数を使用してライブラリをポイントする必要がありますか?

ところで、これを尋ねるのは間違った場所ですか?この質問をする専用のフォーラムはありますか?

ありがとう


呼び出しが失敗したバック トレースは次のとおりです: pastebin .git ディレクトリ内の構成ファイルを解析できないようです (トレースに表示されていないのは、失敗した 'config_parse()' です)。


libgit2で問題をオープンしました。

4

1 に答える 1

4

新しいリポジトリを作成するには、むしろgit_repository_init(). 詳細については、ヘッダーテストを参照してください。

git_repository_open()リポジトリがすでに存在する場合は、むしろ使用する必要があります。

この質問をする専用のフォーラムはありますか?

StackOverflow でプログラミング関連の質問をしても構いません。これに加えて、何人かの libgit2 開発者が irc.freenode.net の #libgit2 チャンネルに参加しています。ただし、バグが発生した場合は、問題トラッカーに送信することをお勧めします。

アップデート

  • 過去に、Windows で構成ファイルがプローブされる方法に関していくつかの問題がありました。それらを修正するためのいくつかの試みとともに。これに関する背景については、この問題を参照してください。
  • プロービングの複雑さに加えて、一部のユーザーは、ファイルの別の場所を明示的に提供したい場合があります。このプルリクエストはこの角度で機能します。

libgit2 のデバッグ中に発見したことを考えると、おそらく今がイシュー トラッカーでバグを開く良い機会になるでしょう。2 つの問題が発生している可能性があることに注意してください: 調査の問題と空の構成の問題です。

于 2013-03-06T13:38:29.080 に答える