I couldn't use git-p4 on my system because I kept running out of memory, and I didn't like the workflow it imposed. Also, it had various other issues with the repo I was trying to use, mainly because it is not an ideal repository, however those are (generally) the fault of the particular repo I was using, and not git-p4. (Which is an excellent script by itself). This script is severely crippled in that it doesn't (yet) allow one to contribute changesets back to perforce, however it manages to read from perforce with: * No need to rebase. * Mangling of file names. (Especially with regards to case sensitivity). * Tagging of revisions with the perforce changesets. * Ability to handle branches with spaces in the name. * Ability to pretend that perforce doesn't exist. (That's the plan, anyway). * Be extremely memory efficient. It does NOT require as much memory as does git-p4, even when the size of the change is large. * Be easy to manually modify the repository, particularly if bad things happen. Unfortunately, not all of the above features may be reliable yet, however I offer this script in order to obtain hopefully constructive feedback so that I may improve the script and make it work very well. Once I perfect this script, I plan to work on getting changes from git back into perforce, which I have a few ideas as to how I might do it. (None of which require rebasing). It requires an OS that can efficiently utilise many open files and pipes, and can run many processes. Such as Linux. I seriously doubt it can work on Windows. It is called git-p4c, because 'git-p4' was taken, and I intended to write it in C++. I may still rewrite it in C++ if it is found neccessary to use it on windows. (The Perforce C++ ABI will remove the need to fork so many processes), but I won't be doing that before I implement the write to perforce support. Consider this to be experimental, not yet worthy of a version number. Remember, I crave (constructive) feedback. Thankyou.