git svn clone
を実行すると、多くの場合、それに続くgit svn fetch
操作中に、私は、フォルダの数のために、このメッセージが表示されます:git-svn「revmapが見つかりませんでした」 - それはどういう意味ですか?
Couldn't find revmap for <SVN folder URL>
マイリポジトリが正常に動作するです。このメッセージはどういう意味ですか?私はそれについて心配すべきでしょうか?
git svn clone
を実行すると、多くの場合、それに続くgit svn fetch
操作中に、私は、フォルダの数のために、このメッセージが表示されます:git-svn「revmapが見つかりませんでした」 - それはどういう意味ですか?
Couldn't find revmap for <SVN folder URL>
マイリポジトリが正常に動作するです。このメッセージはどういう意味ですか?私はそれについて心配すべきでしょうか?
完全な回答はありませんが、このエラーはgit-svn.perlによって生成されています。 (関連するコードパスはdo_fetch - > make_log_entry - > find_extra_svn_parents - > lookup_svn_mergeのようです)。そのコードは、svn merge commitのsvn:mergeinfoプロパティを見て、親のコミット/ブランチをすべて調べようとしているようですこれをgitクローンの中で素敵な、複数の親のマージコミットに変換します。その親の解決が失敗した場合、あなたのコミットはまだgitに取り込まれます。そうでなければ同じ親情報を持たないだけです。
これまで私は、私の現在の主な使用事例でこのエラーに起因する大きな問題を発見していませんでした。これはsvn repoをgitに変換しています。 git-svnは実際に私にとって重要な大きなマージを解決することができましたが、これまでのところ、これらのエラーは、個々のチェリーピックマージやそれ以上気にしない古いブランチに限られているようです。
実際には、私の場合、これらのエラーのほとんどは、私がsvnで間違ったレベルであると解釈するところでsvn:mergeinfoが記録されたコミットに由来しています。 svnリポジトリでは、通常、ブランチルートにsvn:mergeinfoを記録しようとします。 svn/trunkでは、特定のブランチサブディレクトリに添付されているmergeinfoに関係するように見える場合があります。 svn/trunk/dir1にあります。私はsvnのエキスパートではありませんが、現在のヒューリスティックは、ブランチルートにないsvn:mergeinfosがたくさんある場合、svn repoまたはマージプロセスで何か問題がある可能性があります。そうなら、gitが不平を言うことは分かります。私自身のケースでは、これらの「奇妙な」コミットの大半は、ブランチルート(例:svn/trunk)の両方でsvn:mergeinfoをサブディレクトリレベル(例:svn/trunk/dir1)でとに変更します。 gitはrootレベルから必要なものを集め、subdirレベルについては明らかに無害なエラーをスローします。
しかし、おそらく特に恐らくrebasing in a git-svn repo where not all the branches were checked outの場合、一部の人々が問題を報告しているようです。
ちょうど注意したかった - のgit - SVNで隠しファイルが実際に存在し、クロージングidはリポジトリUUIDまたはgit-svn-id
ある
.git/svn/refs/remotes/git-svn/.rev_map.00088888-caaa-4444-9999-2222eeeeeee4
のようなものを...と呼ばれます。
これはバイナリファイルであり、かつ/usr/lib/git-core/git-svn
でそれをもう少しあります:
# rev_map: ...
# This is the replacement for the rev_db format, which was too big
# and inefficient for large repositories with a lot of sparse history
# (mainly tags)
#
# The format is this:
# - 24 bytes for every record,
# * 4 bytes for the integer representing an SVN revision number
# * 20 bytes representing the sha1 of a git commit
...
# - Piping the file to xxd -c24 is a good way of dumping it for
# viewing or editing (piped back through xxd -r), should the need
# ever arise.
出力は次のようになりますことをご注意:
$ cat .git/svn/refs/remotes/git-svn/.rev_map.* | xxd -c24 | head -1
0000000: 0000 0001 33ee 22cc 9933 88aa 44ff 22dd 5566 88ee 66aa bbcc ....5.'..?..J...Zj..`...
私はあなたがgit svn info
を入力するときだと思いますこれはコンサルティングのためのgit
SHAハッシュに基づくSVNリビジョン番号を得るために、このファイルです。 rev30はSubversionコミットリビジョン番号(r123)とGitコミットハッシュ(git commitハッシュ)の間のマッピングです(例:git svn reset
はこのファイルからエントリを消去するのに役立ちますが、これは100%ではありません)。
b389fe ...)。エラーが何を意味するのか分かりませんが、私はそれをかなり定期的に見ていますが、それは良性のようです。 –
これは、リビジョンの履歴が保持されない可能性があることを意味します。 – bancer