2

我正在尝试使用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属性格式不同?

4

3 回答 3

3

这似乎是 git for Windows 为 Windows 输出不正确的行尾的问题。如果我运行:

git config --get-all git-p4.largeFileExtensions

它会给我:

png\r
jpg\r

git-p4.py脚本中,它用于split(os.linesep)拆分命令行的输出。在 Windows 上,os.linesep = '\r\n',因此这些行不会被拆分。如果我将脚本改为使用splitlines(),那么它仍然会发出冲突警告,但是,现在跟踪似乎是正确的。

于 2016-07-19T17:50:04.590 回答
1

请注意,除了git-p4.largeFileExtensions, " git p4" 还用于忽略lfs.storage配置变量,已在 Git 2.25 (Q1 2020) 中更正。

请参阅r.burenkov ( ) 的提交 ea94b16 panzercheg 2019 年 12 月 11 日
(由Junio C Hamano 合并gitster——提交 20aa6d8中,2019 年 12 月 25 日)

git-p4: 尊重 lfs.storage 配置变量

签字人:r.burenkov

“git lfs”允许用户通过配置变量指定自定义的存储位置lfs.storage,但是在与GitLFS指针交互时,“git p4”总是使用硬编码的默认值,即.git/lfs/目录,而不关注配置。

使用 中配置的值lfs.storage(如果存在),就像所有“git”操作一样,以保持一致性。

于 2019-12-29T08:12:57.553 回答
0

我曾经git p4将现有的 Perforce depot 和工作区迁移到新的 git 存储库,并且曾经git lfs migrate将大文件移动到其他地方。在这里查看一个很棒的 github 教程。

列出文件及其大小:

git lfs migrate info --everything

要删除历史记录中的所有 .bin 文件(重写提交)并设置 LFS 配置:

git lfs migrate import --include="*.bin"

在将新的 repo git push 到远程之前,您还可以将 GitHub LFS 服务器 url 更改为另一个implementation。通过执行git lfs env并更改 url 来检查 LFS 配置git config -f .lfsconfig lfs.url https://your.server.com/info/lfs

于 2020-03-20T17:56:09.950 回答