gpt4 book ai didi

GIT Customer Merge 驱动问题(Windows msysgit 1.9.0)

转载 作者:太空狗 更新时间:2023-10-29 14:13:38 24 4
gpt4 key购买 nike

在 Git 中,我们存储来自数据库的数据。创建了一个自定义 .Net 应用程序以将此数据存储在文本文件中(每个表一个)。这工作正常,但是随着更多用户加入团队,我们遇到了许多 merge 冲突。

为了解决这个问题,我正在尝试开发一个自定义 merge 驱动程序来替换 Git 的内置 merge 驱动程序。我已经测试了该应用程序,它在从命令行使用时按预期工作。但是,当我将其集成到 Git 中时,出现此错误。

$ git pull
First, rewinding head to replay your work on top of it...
Applying: test
Using index info to reconstruct a base tree...
M FocalPoint/Data/OBV_USERS.TXT
Falling back to patching base and 3-way merge...
*PKEY Added[<USR_ID>PRJ8</USR_ID>] - In Both Kept Yours
*OBVDataMerge Mods[1] Ads[0] Dels [0]
error: addinfo_cache failed for path 'FocalPoint/Data/OBV_USERS.TXT'
Auto-merging FocalPoint/Data/OBV_USERS.TXT
FocalPoint/Data/OBV_USERS.TXT: unmerged (d9985c8288b16fb072c314e7aa68401ac5c30491)
FocalPoint/Data/OBV_USERS.TXT: unmerged (f18085d169223241c2f70a12bbdea7dc879d5bbf)
FocalPoint/Data/OBV_USERS.TXT: unmerged (af1e6a12f0d7fab318dba4be5317644595ef8745)
fatal: git-write-tree: error building trees

带 * 前缀的行只是我的应用程序所做的注释。

完成此操作后,“FocalPoint/Data/OBV_USERS.TXT”已正确 merge (我的程序按预期工作),但存储库仍处于 REBASE 状态。

这是我的 Git 配置文件:

[merge "OBVData"] 
name = OBVData Custom Merge
driver = "DataMergeDriver.exe" %A %O %B
recursive = binary

这是需要使用这种 merge 方法的数据所在目录的属性文件。

* merge=OBVData

我的应用程序将只使用 A O 和 B 文件来计算如何更新 A 文件。在 pull 过程完成后,这个 A 文件就是 FocalPoint/Data/OBV_USERS.TXT 的内容。

我已经尝试了所有我能想到的组合来解决这个问题,但是我不知道问题是什么。

最佳答案

经过几个小时的测试,我发现了这个问题。问题是我发送的是 Windows 行结尾 vs linux("\r\n"vs "\n")。

如果用 %A 指定的文件已更新并且包含 Windows 行结尾,您将收到上述错误。

添加这行代码后,一切都按预期进行。

       System.IO.StreamWriter outFile = new System.IO.StreamWriter(outFileName, false);
--> outFile.NewLine = "\n";**
foreach (LineItem li in L_Theirs)
{
outFile.WriteLine(li.Line);
}

关于GIT Customer Merge 驱动问题(Windows msysgit 1.9.0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22343457/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com