UE4在MacOS上将Commit.gitdeps.xml设为Git LFS文件的潜在弊端

问题背景

近期 Engine/Build/Commit.gitdeps.xml 添加到Git LFS文件后(操作过程见下文的方法1),出现了一个奇怪的问题------git 拉取后 Engine/Build/Commit.gitdeps.xml 成为3行的LFS指针文件,文件内容如图2,文件大小是133B ,导致后续的 git dependencies 失败,报错如日志3。这个问题只出现在iOS的构建机上。

在.gitattributes 文件中添加如下文本,即可以将 Engine/Build/Commit.gitdeps.xml 置入到LFS文件的行列中了。

Engine/Build/Commit.gitdeps.xml filter=lfs diff=lfs merge=lfs -text

(方法1)

(图2)

Failed to read '/Users/mygame/EngineSource/Engine/Build/Commit.gitdeps.xml': System.InvalidOperationException: There is an error in XML document (1, 1). ---> System.Xml.XmlException: Data at the root level is invalid. Line 1, position 1.

(日志3)

真相

最小复现操作指令如图4的[1]~[4] 步骤,由于 chmod 777 对 Commit.gitdeps.xml 进行了处理,导致此文件被git status 识别为变更。

(图4)

此时 git reset --hard HEAD ,就会损坏,因为lfs此时被卸载了。损坏后, git dependencies 无法正常工作,于是报错如日志3。

解决方法

下面两个思路中择其一就可以了。

1、把 lfs 安装上,然后 git lfs pull

2、让 该文件 重新恢复( lfs安装上之后 git checkout HEAD -- 该文件),撤销 chmod 的影响。

相关推荐
2301_818732063 天前
项目启动报错,错误指向xml 已解决
xml·java·数据库·后端·springboot
csdn2015_3 天前
generatorConfig.xml 配置 Controller、Service 完整教程
xml·mybatis
特立独行的猫a4 天前
从XML到Compose的UI变革:现代(2026)Android开发指南
android·xml·ui·compose·jetpack
spencer_tseng4 天前
Stream not available [SysDictDataMapper.xml]
xml·java
qq_297574675 天前
MySQL迁移到瀚高数据库 常用转换函数对照表(附XML示例,直接复用)
xml·数据库·mysql
好好研究6 天前
SpringBoot整合SpringMVC
xml·java·spring boot·后端·mvc
从此不归路7 天前
Qt5 进阶【12】JSON/XML 数据协议处理:与后端/配置文件的对接
xml·开发语言·c++·qt·json
方芯半导体7 天前
EtherCAT “通信 + 控制“ 的全国产化控制方案,ESC芯片(FCE1323)与国产MCU芯片功能板解析
xml·网络·单片机·嵌入式硬件·网络协议·机器人·自动化
好好研究8 天前
总结SSM设置欢迎页的方式
xml·java·后端·mvc
R-sz9 天前
mybatis的XML,如何多值匹配,支持单值(=)和多值(IN)查询
xml·mybatis