2017-01-19 7 views
1

У меня есть XML-модель (100 МБ) в Git, которая часто меняется и растет в размерах. Я рассматривал возможность использования git-lfs для его обработки.Как слить содержимое файлов, отслеживаемых git-lfs

Проверяя документацию, я не уверен, поддерживает ли git-lfs фактическое слияние файлов, или когда возникают конфликты, должен следовать подход «наш» или «их».

Следовательно, вопрос будет: git-lfs поддерживает фактическое слияние «реального» содержимого отслеживаемых файлов?

---- UPDATE 1 ----

я установил GIT-LFS в моем компьютере, чтобы отслеживать XML-файлы. Следовательно, содержимое моей модели XML больше не является содержимым xml, а указателем на сервер git-lfs. Вот как выглядит мой XML-файл сейчас.

version https://git-lfs.github.com/spec/v1 
oid sha256:0e23dcebda1977c424e5d0f25fda57d6eff9c2a5bbb6df7dd4985b64cf437d20 
size 53 

Следовательно, если в двух ветвях я изменяю этот XML-файл и пытаюсь слиться, он вызывает конфликт. И когда я открываю файл XML, чтобы разрешить конфликт, мне нужно выбрать между один подъязычная и другой:

<<<<<<< HEAD 
oid sha256:0e23dcebda1977c424e5d0f25fda57d6eff9c2a5bbb6df7dd4985b64cf437d20 
size 53 
======= 
oid sha256:cbe18ff9b73fad7d5b9cdcd177f9be9cf25bc88db279f3136aed5bfdec7eb0f7 
size 91554569 
>>>>>>> refs/heads/LFSbr1 

---- UPDATE 2 ---

Это то, что я получаю при выполнении "git lfs env":

WARNING: Reading LFS config from ".gitconfig", not ".lfsconfig". Rename to ".lfsconfig" before Git LFS v2.0 to remove this warning. 
git-lfs/1.3.1 (GitHub; darwin amd64; go 1.6.3; git 9c9dffb) 
git version 2.9.0 

LocalWorkingDir= 
LocalGitDir= 
LocalGitStorageDir= 
LocalMediaDir=lfs/objects 
LocalReferenceDir= 
TempDir=lfs/tmp 
ConcurrentTransfers=3 
TusTransfers=false 
BasicTransfersOnly=false 
BatchTransfer=true 
SkipDownloadErrors=false 
FetchRecentAlways=false 
FetchRecentRefsDays=7 
FetchRecentCommitsDays=0 
FetchRecentRefsIncludeRemotes=true 
PruneOffsetDays=3 
PruneVerifyRemoteAlways=false 
PruneRemoteName=origin 
AccessDownload=none 
AccessUpload=none 
DownloadTransfers=basic 
UploadTransfers=basic 
git config filter.lfs.smudge = "git-lfs smudge -- %f" 
git config filter.lfs.clean = "git-lfs clean -- %f" 

Все в порядке?

ответ

0

Да, это так. Нет никакой разницы, связанной с операцией слияния, между содержимым LFS и Non-LFS one. Git будет управлять слиянием не git-lfs.

Я думаю, что следующая строка отсутствует в вашей "мерзавец LFS окр":

git config filter.lfs.process = "git-lfs filter-process" 

Убедитесь, что ваш $ HOME/.gitconfig имеет следующие строки:

[filter "lfs"] 
    clean = git-lfs clean -- %f 
    smudge = git-lfs smudge -- %f 
    process = git-lfs filter-process 
    required = true 
+0

Да, но так как содержимое этого XML-файла теперь является указателем (git-lfs), который я объединяю, а не моделью, а указателями. Я не знаю, если я сам объясню ... Проверьте обновление – user2903958

+0

Вы установили git-lfs на свой локальный компьютер? Если вы его установили, вы должны увидеть реальный XML-файл (а не указатель). Я запускаю тест на своей машине, и «git merge» работал так, как ожидалось, что конфликт довольно неплохой. –

+0

Да, я его установил .... Любые другие догадки, почему я не могу фактически объединить содержимое моей модели? – user2903958