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

Cannot stage binary file on Windows #43

Open drauch opened 10 years ago

drauch commented 10 years ago

After solving my Python version problem, git fat push / git fat pull executes smoothly. However, when trying to stage my first binary file, I get the following error:

Stage 1 files
error: cannot feed the input to external filter git-fat filter-clean
error: external filter git-fat filter-clean failed
Done

Looks like something is still misconfigured? I executed git fat init, configured .gitfat and .gitattributes correctly. What else could I have done wrong?

Is git-fat at the moment Windows ready?

jedbrown commented 10 years ago

Windows is not currently supported. I don't know what's going on in your error message, but I cannot test on Windows and I need to have confidence that encoding is done correctly before I can merge a pull request.

drauch commented 10 years ago

Okay, thank you very much. It would be nice to read "Windows not supported" on the start page of your project, would have saved me half a day ;-)

drauch commented 10 years ago

Thank you anyways for you fast replies!

omikronsc commented 10 years ago

drauch, your error is because git doesn't know what is fat filter. You need something like this: $ git config --global filter.fat.clean git-fat filter-clean $ git config --global filter.fat.smudge git-fat filter-smudge

This add config options which you can check using: git config --list (...) filter.fat.clean=git-fat filter-clean %f filter.fat.smudge=git-fat filter-smudge %f

Are you sure you have git-fat in system PATH?

drauch commented 10 years ago

@omikronsc: The configuration is already set with git fat init, and yes, git-fat is in the system PATH.

omikronsc commented 10 years ago

@drauch: This doesn't make sense. Did you add git-fat to PATH globally? There are subprocesses called without altering global PATH. Can you invoke 'git-fat' (WITH '-')?

jsvanbethlehem commented 10 years ago

Could this be related to rsync not being available on Windows?

omikronsc commented 10 years ago

Well I made git-fat working on Windows. See my branch https://github.com/omikronsc/git-fat .

I branched out from https://github.com/PersonifyInc/git-fat. They ported git-fat to Python 3. But they focused on Amazon storage and forget some functions for rsync, which I added in my branch.

Then I setup environment for git-fat to work. I used git Windows installer to have bash-like command line and added rsync from another MinGW installation. Files needed to rsync work under git-bash: rsync.exe msys-iconv-2.dll msys-intl-8.dll msys-popt-0.dll

Files are located in /msys/1.0/bin but you have to install rsync manually, it's not default package. Files has to be copied into /bin.

To sum up. You need git msys installer, another MinGW with rsync and my branch of git-fat.

cztomczak commented 9 years ago

Just FYI: the cyaninc/git-fat repo added support for Windows. All dll/exe dependencies are shipped (awk, rsync, ssh), so it works out of the box. Currently you can install it only from sources (by running the win32/setup_wheel.bat script), as the wheel package has not yet been uploaded to PyPI.