54

运行 agit commit会导致以下输出:

[manu@host] git: git commit -a -m "StreamIt instrumentation"
[master 263410f] StreamIt instrumentation
62 files changed, 6117 insertions(+), 5748 deletions(-)
rewrite Code/ALCHEMY/streamit-src-2.1.1/src/at/dms/kjc/cluster/ClusterBackend.java (91%)
rewrite Code/ALCHEMY/streamit-src-2.1.1/src/at/dms/kjc/cluster/ClusterCodeGenerator.java (95%)
rewrite Code/ALCHEMY/streamit-src-2.1.1/src/at/dms/kjc/cluster/code/FlatIRToCluster.java (94%)
rewrite Code/ALCHEMY/streamit-src-2.1.1/src/at/dms/kjc/common/ToCCommon.java (92%)
rewrite Code/ALCHEMY/streamit-src-2.1.1/src/at/dms/kjc/flatgraph/ScheduledStaticStreamGraph.java (93%)
rename Code/ALCHEMY/streamit-src-2.1.1/src/at/dms/kjc/sir/lowering/fission/{StatelessDuplicate.java => HorizontalFission.java} (98%)
rewrite Code/ALCHEMY/streamit-src-2.1.1/src/at/dms/kjc/sir/lowering/partition/dynamicprog/DynamicProgPartitioner.java (93%)
  • 当 git 将文件报告为“重写”时,它是什么意思?
  • 相关百分比的含义是什么?
  • 为什么在此提交中更改的 62 行中只有百分比与这些行相关?
4

1 回答 1

61

Git 使用启发式方法来确定更改是否是文件的重命名或复制,以及是否是文件的“重写”。粗略地说,如果新旧版本的差异大于新版本本身,那就是“重写”。

这是针对 git 更改源文件的原始用例进行调整的,通常是进行本地化更改:因为它基于逐行差异,所以像重新缩进源文件这样的事情可以触发它。此外,由于它是即时确定的,因此“-b”和“-w”等差异选项可以改变对更改是否是重写(或复制,或重命名)的评估。

百分比是 git 的“相异性指数”(与重命名或复制的“相似性指数”百分比相反)。可能类似于文件中已更改的行的百分比。

于 2012-12-01T00:29:23.910 回答