nvie / gitflow

Git extensions to provide high-level repository operations for Vincent Driessen's branching model.
http://nvie.com/posts/a-successful-git-branching-model/
Other
26.63k stars 2.66k forks source link

Reimplement it all in a high-level language #33

Open nvie opened 14 years ago

nvie commented 14 years ago

Expanding git-flow is becoming increasingly tedious. The subcommand structure isn't flexible enough to support heterogenous subcommand styles and flag parsing is a pain in the ass to get right on all platforms.

Also, there is a lot of duplication in the code already because of limitations in the way sh forces you structure your code.

This calls for a total reimplementation in a higher-level language of choice. That will be Python. Since the project is still rather small, this should not be too big an issue.

nvie commented 14 years ago

I'll put up a skeleton for this rewrite soon. Hang in there.

kennethreitz commented 14 years ago

Going schizo on us? :P

If you're cool with Python, I'd be happy to implement.

tianon commented 14 years ago

Just for curiosity's sake, in your git-model if you wanted to implement something like this (a complete rewrite in a totally different language), but wanted to continue development on the old stuff concurrently, would the rewrite be best developed in a feature branch pushed to origin? Not that this is necessarily the way you personally want to implement this, but this seems a good place to discuss such a workflow. It would make sense to me to create a feature branch for something like this, but I am very interested in "checking my work" against another mind, if you will.

tianon commented 14 years ago

... of course, after I post that, I notice you've already done just that. Kudos! :)

nvie commented 14 years ago

Yes, the base for it is available in http://github.com/nvie/gitflow/tree/feature/python-rewrite. It's not much yet, but as soon as I find the time, I'll start making new committing there. Then, it'll soon be up to the point where it will be easier for people to start submitting patches!

kilianc commented 14 years ago

git flow it's gonna be a standard... please let it works on my mac :)

keithamus commented 13 years ago

You may want to look at Scriptine:

http://pypi.python.org/pypi/scriptine/0.2.0a2

It is a wrapper for CLI access which can make light work of interfacing to a CLI like bash.

Thanks for the great project!

dolmen commented 13 years ago

msysgit already has to bundle:

Don't you think this is enough?

eloyesp commented 12 years ago

I known I'm late, but I would prefer ruby because I know it, but it also have gems to gems (libraries) to help.

On the bad side, ruby is not more easy on windows than python. On the good side, the ruby community is more git driven than python's.

kennethreitz commented 12 years ago

I think bash is the best choice.

mgaitan commented 11 years ago

is this idea abandoned? I couldn't find the above mentioned branch ( https://github.com/nvie/gitflow/tree/feature/python-rewrite ) I was looking for specially to see/work on the documentation (#75 refers here)

webwurst commented 11 years ago

@kennethreitz did something similar: Legit Won't help you with documentation, so just for info..

88Alex commented 11 years ago

+1 for rewriting in Ruby. I personally prefer Ruby over Python (more powerful, clearer syntax, lots of 3rd-party code available).

88Alex commented 11 years ago

I think it's time to start the Python/Ruby rewrite (I think Ruby is better). Ruby has lots of nice modules and gems (i.e. OptionParser, GLI) that make writing command-line tools much easier.

jbiason commented 11 years ago

Python also have modules for command-line tools directly in the standard library. Check ArgParse (http://docs.python.org/2.7/library/argparse.html) and cmd (http://docs.python.org/2.7/library/cmd.html). This means there is no need to go after any external "gems" or anything.

kennethreitz commented 11 years ago

meh, the whole thing should be bash :)

robertwe commented 11 years ago

@kennethreitz and dude you are right here.

SparK-Cruz commented 11 years ago

Will I be crucifield if I say Java? (at least it's multi-platform)

88Alex commented 11 years ago

Actually, Java would also work. However, unlike the other suggestions, Java must be compiled, which could lead to a minor inconvenience. (Fun fact: Java is more than 32 times faster than Python!)

tdjordan commented 11 years ago

You could use groovy instead. That way it wouldn't need to be precompiled. On Jul 15, 2013 2:10 PM, "Alex" notifications@github.com wrote:

Actually, Java would also work. However, unlike the other suggestions, Java must be compiled, which could lead to a minor inconvenience. (Fun fact: Java is more than 32 times faster than Python!)

— Reply to this email directly or view it on GitHubhttps://github.com/nvie/gitflow/issues/33#issuecomment-20995978 .

mgaitan commented 11 years ago

Please, stop flooding this thread. Nobody will work on a reimplementation in your preferred language just because you requests that here. Start it yourself and then ask for help.

btw, +1 to close it with "won't fix" (it seems the not explicit decision)

SparK-Cruz commented 11 years ago

@mgaitan we are only seeing pros and cons of every language when we convince eachother to use a certain language (or majority of people choose a language) one of us will definetively start the project.

HerrBvomSee commented 11 years ago

But in June 2012 Vincent closed the pull-request and deleted his python-rewrite branch. So Hartmut decided to release the Python rewrite on his own. (Reference: https://github.com/htgoebel/gitflow#history-of-the-project)

So it seems we do not see a new version of gitflow in Python (or any other preferred language) here in this repo. If you are looking for the Python version of gitflow head over to https://github.com/htgoebel/gitflow