私が以前投稿したfinding the best match between two sourcesの質問の1つとして、アクティブなgit repoがあり、もう一方にgitの履歴がない場合は、a perl script to find the closest git commitと書きました。大きなソースツリーの「親密度」を測定する
私はスクリプトを書き直しているので、使用するブランチを推測する必要はありませんが、すべてのブランチで実行されて最も近いものを見つけて、最も良いコミットを教えてくれます最高の支店。残念ながら、私が使用している測定値が「近さ」の最高の判断基準ではないかもしれないことがわかりました。
現在、私はdiff -burN -x.git my_git_subtree my_src_subtree | wc -l
を使用して、コードツリーがどれくらい近いかを判断します。これは多かれ少なかれ動作するようですが、フォルダ全体が追加されたり見つからなかったり、存在したり、別のブランチに存在しない場合があります。
ソースがどれくらい近いかを判断する良い方法はありますか?私はディレクトリ構造を比較する何かを想定しています。おそらく同様にいくつの行が異なっているのでしょうか。それはちょうどdiff
に異なるパラメータを渡す問題かもしれません、または多分そこのような何かを行う別のツールがあります。
プログラムの「親密度」を測定する方法はありません。 「if(〜x)explode」は、「if(x)explode」(1文字)とはわずかに異なる1つの尺度であるが、これらの2つのプログラムの結果は根本的に異なる。誰もがあなたが提案するどんな対策にも反対します。私はあなたがセットを選んで、フラックと一緒に暮らすことをお勧めします。嫌いな人は、より良い答えを実装することを歓迎することができます。 –