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 的影响。

相关推荐
humstone5 小时前
基于xml 和sql 实现自定义报表查询
xml·数据库·sql
就叫飞六吧1 天前
考古spring.xml注册bean无法扫描目录问题
xml·java·spring
Star abuse1 天前
XML转YOLO格式数据集教程
xml·人工智能·yolo
gAlAxy...2 天前
MyBatis 核心配置文件 SqlMapConfig.xml 全解析
xml·mybatis
编程修仙3 天前
第十一篇 Spring事务
xml·java·数据库·spring
金士顿3 天前
Ethercat耦合器添加的IO导出xml 初始化IO参数
android·xml·java
烤麻辣烫4 天前
黑马程序员苍穹外卖后端概览
xml·java·数据库·spring·intellij-idea
暗碳4 天前
安卓abx二进制xml文件转换普通xml文件
android·xml
jinxinyuuuus4 天前
文件格式转换工具:XLSX的XML流式解析、数据类型推断与CSV编码规范
xml