jedbrown / git-fat

Simple way to handle fat files without committing them to git, supports synchronization using rsync
BSD 2-Clause "Simplified" License
621 stars 137 forks source link

git-fat pull and git-fat init #25

Open redst4r opened 10 years ago

redst4r commented 10 years ago

Hi,

while using git-fat, I came across a small "issue": If one doesn't execute "git fat init" after cloning a repo that uses git-fat, the pull just wont succeed (it pulls the files into .git/fat but doesn't replace them in the index). Unfortunately, there's no warning/message that indicates that the user forgot to run the "git fat init", it just "fails" silently.

Maybe it's possible to put a checkpoint in "git fat pull" to see if the init was already done. It cost me some hours to figure out what's going wrong (although it's mentioned in the README to run "git fat init", I just didn't see it)

jedbrown commented 10 years ago

Thanks. Do you think we should be more eager about aborting when git-fat has not been configured? My only reservation is that it may be useful to fetch files from the store without setting the filters.

jmurty commented 10 years ago

You're welcome, thanks for the great tool! And thanks for accepting my less dubious PRs.

I'm not sure how eager we should be to abort in an un-inited repo. I first thought about sprinkling the assert_init_done call in a few places, but then realised the ability to push/pull git-fat objects in a "plain" repo and have the sync complete could actually be a nice feature.

The checkout command was the only place where it seemed vital to check. Aside from that I think it's probably best to assume users know what they are doing and not get in their way unnecessarily.

If anything, it might be worthwhile adding support for a --no-checkout flag to git fat pull -- or maybe add a git fat fetch command instead -- so git fat objects can be synced without being checked out into the working copy.

jedbrown commented 10 years ago

Sounds fair. I'm inclined to be more strict by default and add git fat fetch if someone wants this feature.

drauch commented 10 years ago

What's wrong with executing git fat init automatically at the first git fat command? If .gitfat / .gitattributes is checked into the repo, there is no per-developer configuration work to do?!

jedbrown commented 10 years ago

The user might have other filters set. I was following the same logic as git submodule update in a fresh repository not automatically initializing.