【问题标题】:Word-by-word blame/annotate in version control?在版本控制中逐字责备/注释?
【发布时间】:2013-07-19 10:37:29
【问题描述】:

是否可以在版本控制中逐字重建历史记录?理想情况下,我想做的是 1)我指出感兴趣的行的范围,2)让程序找出以前版本中的相应行号,因为代码经常在版本之间上下移动(可能会限制版本范围,比如从第 19 版开始,或者从一周前开始),3)打印出逐字的历史记录,或者是最后一次更改单词组的版本,或者更改单词组的作者。所以它有点像svn blamegit blame 逐字逐句。

如果做不到这一点,是否有可以执行上述 #1 和 #2 的工具?也就是说,1)我指出感兴趣的行的范围,2)让程序找出以前版本中对应的行号,3)程序会打印出这些行的历史(当有变化时)。

svn 或 git 对我来说真的很有帮助。

【问题讨论】:

  • 逐字逐句!我不这么认为,git 会逐行跟踪更改。您是否尝试将 git 用于作家?对于程序员,我认为不需要这种程度的责备。
  • 是的,我正在尝试在 LaTex 文档上执行此操作,至少目前是这样。不过,它不需要是 git 内置的东西。我想一个可以读取 git 历史的 git 外部程序也可以做到这一点。
  • @JeslyVarghese:Git 按快照跟踪更改。基于行的格式是即时计算的,也可以是基于单词的格式。
  • @nosid:哇!谢谢:)

标签: git svn blame


【解决方案1】:

我制作了一个名为 git-word-blame 的工具来解决这个确切的问题:

# setup
> virtualenv -p python3 venv
> source venv/bin/activate
> pip install git-word-blame

# usage
> git word-blame your-file
> firefox /tmp/git-word-blame/word-blame-by-commit.html

我应该是这样的:

编辑:这也是 2016 年的另一个项目,试图基于角色的指责:https://cregit.linuxsources.org/

【讨论】:

    【解决方案2】:

    我寻找了类似的东西并最终破解了我自己的解决方案。你可以在这里找到它:

    https://github.com/d33tah/wordblame

    基本上,它会创建一个新的存储库目录,其中所有空格都替换为换行符和唯一的字符串,表明存在空格。然后,“git blame”被执行,结果被重新解释。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-21
    • 1970-01-01
    • 2010-09-24
    • 1970-01-01
    • 2010-09-09
    • 2017-04-27
    • 2015-10-11
    相关资源
    最近更新 更多