我在我的 KRL 项目中使用 git 时遇到了一些问题,我想知道是否有一些解决方法可以改进我的工作流程。
KRL 是工业 KUKA 机器人的编程语言。它具有类似 Basic-/Pascal 的语法。一个程序由一个或多个模块组成。一个模块由两个文本文件组成,一个用于源代码 ( .src),另一个用于声明和定义 ( .dat)。
我的第一个问题是,在每个文件中,第一行构建的标题如下所示:
&ACCESS RVO
&REL 175
每个标题行都以 & 开头,对代码没有任何意义。最糟糕的部分是这个标题不断变化。因此,当我将一个文件从机器人控制器复制回我的仓库时,git 指出文件已更改,即使源代码相同。
所以我的第一个问题:有没有办法使用过滤器或钩子来忽略所有以 a 开头的行&
?
我的第二个问题是 *.dat 文件不仅用于声明和定义,如类 C 语言中的头文件,而且还用于存储值。这看起来像这样:
DECL E6POS XP1={X 319.710815,Y -488.601227,Z 1364.72363,A -73.5368805,B 88.6439896,C 10.5155058,S 6,T 26,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
INT counter=123
REAL offset=0.123
我依赖这些值,因为它们存储需要保持持久性的位置和计数器,但我不在我的回购中关心它们。不完全是,它们必须在文件和我的仓库中,但 git 不应该在这些行中寻找差异。
所以假设我在我的仓库中创建了一个模块并将这个模块复制到机器人。现在我用机器人执行这个模块并且必须覆盖一个位置值。这会更改相应 *.dat 文件中的值。一切正常,几天后我想实现一个计数器。我不能只将新的整数定义放入本地可用的 *.dat 文件中,因为这样我会覆盖机器人上的位置值。所以我必须首先将 *.dat 文件从机器人控制器复制到我的 repo 并在那里定义新变量。但当然 git 向我展示了文件不仅在新行中发生了变化,而且在机器人更改位置等值的行上也发生了变化。这使得审查变得更加困难,因为我有很多不断变化的测量值和计数器值。
所以对于我的第二个问题:有没有办法忽略=
*.dat 文件之后的所有内容?这应该与来自标头的工作相同&
,因此值应该在 repo 中,但我不关心这些值的任何差异。