私のチームでは、マージでお互いに助け合っている人もいます。つまり、私のコードは他の誰かによってトランクにマージされます。マージ中に作成者情報が完全に保持されないようです。注釈を付ける(非難する)と、合併が作成者として表示されます。
マージで何か問題が発生したか、元の作成者がマージで保持されていませんか?
サーバーがマージ トラッキングを行い、クライアント ツールがバージョン 1.5 以降の場合、これは機能します。
svn blame --use-merge-history TARGET
マージは、誰かがトランクをチェックアウトし、一度に大量の変更を加えてから再びコミットしたように見えます。マージ後に最終コミットを行った人は誰でも作成者として表示されます。マージを手伝ってくれる人がいる場合は、所属させたい人のユーザー名で行うようにしてください。
そうは言っても、誰かがマージで間違いを犯した場合、マージを「助けた」人の名前が必要です。
SVN サーバーに関する唯一の情報は、コミットの作成者です。それが、非難/注釈が使用するものです。
いいえ、この種のマージ中に作成者は保持されません。SVN ハンドルよりも多くの情報が必要になります。
私の意見では、元の作成者がマージを行っていないというアプローチは間違っています...しかし、これは別の話です。
Subverison では、すべてのコミットが作成者に関連付けられています。マージは、特定の作成者に属する作業コピーでのみ実行できます。私の意見では、SVN の情報は正しいです。なぜなら、コードをマージした人がマージの「責任者」だからです。そのため、彼の名前との関係は正しいのです。
マージするとプロパティが変更される場合がありsvn:mergeinfo
ます。この場合、特定のマージの元のコミットの作成者を間接的に検出できます。
しかし、これは単なるバンドエイドです。マージによる実際の作成者の追跡が必要な場合は、分散開発用に設計されたツールツール(、、、など)に切り替える必要がgit
ありhg
ますdarcs
。
100% 確信はありませんが、答えは「はい」と「いいえ」になると思います... annotate AFAIK は、そのコード行に最新の変更を加えた作成者のみを表示します。これは、あなたの場合、マージを行った人になります。さらに先に進む必要がある場合は、マージ前のバージョンを非難する必要があります。