分岐が1つしかないgitリビジョンコントロールプロジェクトがあります。特定の作成者が特定のファイルに最初に導入した空白で区切られた新しい単語をすべて削除する必要があります。
明確にすると、この時点ではすでにHEAD
チェックアウトされています。という名前のサンプルファイルにintroduction.tex
文がある場合は、"Enlargement of the user-base is beneficial ..."
適切なgitコマンドを含むbashスクリプトが必要です。
- 現在、スペースで区切られた単語を解析します(例では、最初の反復の場合
Enlargement
)。たぶん\b[A-za-z+]\b
、単語を検出するために正規表現を使用することもできます。 - 単語の長さが5文字以上であることを確認してください。そうでない場合は、この条件が満たされるまで次の単語に進みます。満足のいく場合は、下記#3に進んでください。
- その用語を紹介する元のコミットを作成した人が誰であるかを知るには、プロジェクトの完全な履歴を確認してください。
- その特定のコミットの作成者が一致すると、考慮中の単語が
johndoe
ファイルから削除されます。 - ファイル内のすべての単語が解析され、特定の作成者の元の単語が削除されるまで#1 -#4を繰り返します。
頻繁に発生する単語の処理:
などの一般的なキーワードを無視することが重要ですa, an, the, of, for, if, then, but, else, not, any, or, nor
。したがって、5 characters
削除できる単語を作成するには、文字列の最小長を維持することをお勧めします。
基本的に、特定の著者によって書かれた英語に似た貢献を削除または復元することはアイデアです。これはどのように達成できますか?
Latexdiff後処理:
この質問は、作成者の貢献を取り除いた後に違いレポートを生成することです。テキストをトリミングした後(つまり、この質問に対する答えを得た後)、標準ですが素晴らしいPerlスクリプトを使用します。latexdiff
latex
これらの単語の削除(または実際には2つのファイル間の異なる違い)を検出し、削除された単語を赤いキャンセル線で強調表示する複合PDFを出力できます。私がしなければならないのは、他の著者がもともと紹介した単語(例えば、私の重要な問題)を識別して削除することです。したがって、合成pdfのすべての文は一貫性を維持し、意味を失うべきではなく、削除された単語は同じ位置にありますが、赤いキャンセル線の表示のみがあります。
背景と文脈:
これは学術的な文脈でです。 gitプロジェクトはLaTeX原稿のリポジトリです。論文の共著者と著者の紛争があり、その論文がどのジャーナルにも投稿されていません。私たちは皆博士課程の学生です。私たちの論文で使用されているテキストの著作権を主張するために、博士指導教授は論文での再使用を許可し、盗作の疑いを避けるために、原稿に紹介されたテキストに対するそれぞれの主張の提出を要求しました。私たちは両方とも同じリポジトリに専念しており、私は正直に貢献している正しい言葉を表現するのに役立つand git
、and、または他のすべての機能を活用するつもりです。shell
ご協力ありがとうございます。git-grep
sed
awk
perl
初期点:
git log -S --oneline 'enlargement' -- introduction.tex
enlargement
この場合、大文字と小文字を区別する単語に関連するコミットのリストが正しく表示されます。リストで最も古いコミットは、コミット作成者を識別するのに役立ちます。私たちはまず概念を説明する「大きな技術的な言葉」を探しています。私はstart gitコマンドを使って手動でこれを行いました。ところで、そのようなファイルが10個ほどあるので、これを自動的に行う必要があります。明らかに、すべてのファイルの5文字以上の単語ごとに手動でこれをしたくありません。