Git-重新编写作者的提交

时间:2018-07-18 11:33:36

标签: git shell revision-history pruning git-plumbing

在一个包含名为file.txt的示例文件的git项目中,我想要一个脚本,该脚本:

  1. 解析当前以空格分隔的单词(在示例中,对于第一次迭代,它将为Enlargement)。也许可以使用\b[A-za-z+]\b之类的正则表达式进行单词检测。
  2. 检查单词长度是否至少为5个字符。如果没有,继续移动到下一个单词,直到满足此条件。如果满意,请移至下面的#3。
  3. 检查项目的整个历史,以找出最初由谁做出引入此词的提交。
  4. 如果该特定提交的作者与johndoe相匹配,则从文件中删除正在考虑的单词。
  5. 重复#1-#3,直到解析了文件中的所有单词,并且删除了特定作者的原始单词为止。

常见词的处理:

重要的是要忽略诸如a, an, the, of, for, if, then, but, else, not, any, or, nor之类的常见关键字。因此,我建议将字符串中的最小长度保持为5 characters,以使该单词有资格被删除

基本上,这个想法是消除或还原特定作者做出的类似英语的贡献。该怎么办?

latexdiff的后处理:

此问题用于在删除作者的贡献后生成差异报告。修剪完文本后(即,在我得到了这个问题的答案之后),我打算使用一个标准的,令人惊叹的perl脚本latexdiff,该脚本可以检测到这些单词删除(或实际上两个{{ 1}}文件),然后输出一个复合PDF,并用红色的strutthoughs高亮显示已删除的单词。我需要做的就是识别并删除其他作者最初引入的词(即我在这里的核心问题)。因此,复合pdf中的所有句子应保持连贯性,且不会失去任何意义,但会继续将删除的单词保留在同一位置,但在其上仅带有红色的删除线标记。

背景和上下文:

这是在学术背景下。 git项目是手稿的LaTeX回购。我与某论文的合著者存在著作权纠纷,因此未提交任何期刊。我们都是博士生。为了要求我们为每个论文使用这些单词的版权,我们的博士生顾问要求对我们每个人在手稿中引入的单词提出我们各自的要求,以便在我们的论文中重复使用,并避免抄袭指控。我们俩都致力于相同的仓库,现在我正在考虑利用latexgit以及shellgit-grepsed,{ {1}}或其他任何可以帮助我认清自己为正直贡献的正确话语的方法。您的帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

我认为进行完整的交互式基础更改并删除所有其他作者的提交会更容易。

准备好解决很多合并冲突,当您对由此产生的混乱感到不满时,这些冲突会越来越难。