Queens-Hacks / qcumber-api

transforms qcumber data repo into something blah
1 stars 3 forks source link

Git options #25

Open Graham42 opened 10 years ago

Graham42 commented 10 years ago

so dulwich is feature lacking(no push, branches are nightmare) and is not python 3 compatible

libgit2 has a bunch of dependencies and is difficult to install

subprocess is "bad"

but how "bad" is subprocess? are there other preferred options? I think that with dulwich we'll end up half using subprocess anyways and/or end up spending delevopment time on dulwich instead of qcumber (the main goal)

mystor commented 10 years ago

You probably already know this, but I don't have a big problem with using subprocess to do this, however, we should make sure to use the pluming functionality, rather than the porcelain.

pR0Ps commented 10 years ago

Dulwich seems to still be in development. There is a Python 3 branch, but the creators have said that it has some issues.

Personally, my desired order would be Dulwich, libgit2, then subprocess. In-memory operations are way better than actually checking out files and reading off the disk. Dulwich seems like it might not be ready for use, and I have no problem requiring people to build libgit2. The old Qcumber does this already with lxml (it's a C implementation that requires gcc + libraries to compile when you pip install it).

I don't like subprocess at all. It's a huge hack and will most likely cause problems down the line. Plus, it also requires installation, much like libgit2. That being said, it's probably the easiest so if you want to just get it working and don't mind re-implementing later, go for it.

Casting my vote for pygit2 + libgit2.

Graham42 commented 10 years ago

I will give pygit2 + libgit2 a try.

mystor commented 10 years ago

Sounds awesome On Jan 31, 2014 8:40 AM, "Graham42" notifications@github.com wrote:

I will give pygit2 + libgit2 a try.

Reply to this email directly or view it on GitHubhttps://github.com/Queens-Hacks/qcumber-api/issues/25#issuecomment-33794380 .