我正在尝试使用git-p4
(使用git for Windows)将Perforce存储库转换为git存储库。我有很多图像,并希望使用LFS。但是,我似乎无法使git-p4.largeFileExtensions
配置设置与多个扩展程序一起正常工作。如果我执行以下操作:
git config git-p4.largeFileSystem GitLFS
git config git-p4.largeFileExtensions png
git config --add git-p4.largeFileExtensions jpg
git p4 clone --verbose //depot/project@all .
我得到(如果我使用两个以上,所有对都会报告类似的警告):
WARNING: These git config values clash:
git config "git-p4.largefileextensions" = "png"
git config "git-p4.largefileextensions" = "jpg"
.git/config
文件是我所期望的,是largeFileExtensions的多值条目:
[git-p4]
largeFileSystem = GitLFS
largeFileExtensions = png
largeFileExtensions = jpg
但创建的.gitattributes
文件如下所示:
#
# Git LFS (see https://git-lfs.github.com/)
#
*.png
jpg filter=lfs -text
我做错了什么,或者largeFileExtensions
属性格式不同?
答案 0 :(得分:2)
这对于Windows输出错误的行结尾的git来说似乎是一个问题。如果我跑:
git config --get-all git-p4.largeFileExtensions
它会给我:
png\r
jpg\r
在git-p4.py
脚本中,它使用split(os.linesep)
从命令行拆分输出。在Windows上,os.linesep = '\r\n'
,因此这些行不会被拆分。如果我将脚本更改为使用splitlines()
,那么它仍然会发出冲突警告,但是,现在看来跟踪是正确的。
答案 1 :(得分:0)
请注意,除了git-p4.largeFileExtensions
外,“ git p4
”还用于忽略lfs.storage
配置变量,该变量已在Git 2.25(2020年第一季度)中进行了纠正。
请参见commit ea94b16的r.burenkov (panzercheg
)(2019年12月11日)。
(由Junio C Hamano -- gitster
--在commit 20aa6d8中合并,2019年12月25日)
git-p4
:荣誉lfs.storage配置变量签名人:r.burenkov
“ git lfs”允许用户使用配置变量
lfs.storage
指定自定义存储位置,但是在与GitLFS指针交互时,“ git p4”始终使用.git/lfs/
目录的硬编码默认值,而无需注意配置。使用
lfs.storage
中配置的值(如存在)(如所有“ git”操作一样)以保持一致性。
答案 2 :(得分:0)
我用git p4
将现有的Perforce软件仓库和工作区迁移到新的git repo,然后用git lfs migrate
将大文件移到其他地方。查看出色的github教程here。
要列出文件及其大小:
git lfs migrate info --everything
要删除历史记录中的所有.bin文件(重写提交)并设置LFS配置:
git lfs migrate import --include="*.bin"
在git将新存储库推送到远程之前,还可以将GitHub LFS服务器URL更改为另一个implementation。通过执行git lfs env
检查LFS配置,并通过git config -f .lfsconfig lfs.url https://your.server.com/info/lfs
更改URL。