0

我正在使用 git 扩展来实现简单的 git 功能。我试图将它用于旧的 gupta 代码。文件中有很多二进制和元数据:

[...]
.head 7 +  On cAM_F3
.head 8 -  Call c_fktToggleButtonPerson( )
.head 5 +  Pushbutton: pbPersonAG
.data CLASSPROPSSIZE
0000: 2400
.enddata
.data CLASSPROPS
0000: 5400610062004300 680069006C006400 4E0061006D006500 73000000FFFE0200
0020: 00000000
.enddata
[...]

不过效果还不错。我添加*.apl diff到 .gitattributes 以便 git 扩展正确地向我显示更改。虽然我注意到在进行合并和挑选时 git 并不关心这些变化,只是它是否改变了,这让它有点乏味。所以它仍然将文件作为二进制处理。

所以我了解到文件编码是根据 WinMerge 的 ISO-10646-UCS-2 BOM 或根据 Notepad++ 的 UCS-2 LE BOM。因此,我将 .gitattributes 更改为*.apl diff working-tree-encoding=UCS-2 eol=CRLF并忽略了 git 操作将需要更长时间的警告,因为它现在正在转换文件。这些文件的第一个更改包含“删除所有内容重写所有内容”可能是因为它更改了编码(?)

之后,它们在之前/之后看起来更好,但 WinMerge没有正确处理编码,并且对于第一次提交,它只处理一半

做差异(在 gitextensions 中是在能够提交之前自动完成的)似乎需要很长时间。我还注意到,如果我检出其他分支并在之后返回,IDE 似乎在读取更改的文件时出现问题。

我不确定提交前的额外等待是否值得更好的合并/樱桃挑选过程的潜力。而且我不知道我是否可以修复损坏的文件。

在我重做一些工作之前,我想得到一些建议,我应该做什么,我应该在我的 .gitattributes 中写什么?我应该使用不同的工具吗?

提前致谢。

编辑:似乎 git 在将内部使用的 UTF-8 转换为 UCS-2 时存在问题。在尝试重置某些未提交的工作时,我有时会收到 git 无法转换文件的错误。

4

1 回答 1

0

. 你没有提到你的 .apl 文件是用哪个版本的 Gupta TeamDeveloper 构建的。

但是从 v7.1 开始(现在可以将 7.1 视为“旧”),所有这些都支持开箱即用的 Git。 1

此外,Gupta 自己的团队对象管理器是一个很棒的存储库工具,它可以(除其他外)比较两个或多个 SQLWindows(.apl、.apt、.app)文件并报告它们之间的差异。它还可以将文件与其后续版本进行合并,生成包含公共代码和来自合并参与者的三路修改区域的最终版本。

如果您运行的是 v7 之前的版本:

  1. 您可以(应该)考虑至少升级到 v7.3
  2. 尝试使用 TortoiseSVN,这是一个非常容易使用的版本控制/版本控制/源代码控制。我曾经在 v4 .apls 上使用它。它基于 Apache Subversion (SVN);TortoiseSVN 为 Subversion 提供了一个漂亮而简单的用户界面。去这里:对于 TortoiseSVN
于 2021-06-29T02:06:11.617 回答