Reimplement it all in a high-level language #33

Open
nvie opened this Issue Jul 9, 2010 · 23 comments

Comments

Projects
None yet
@nvie
Owner

nvie commented Jul 9, 2010

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

This comment has been minimized.

Show comment Hide comment
@nvie

nvie Jul 9, 2010

Owner

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

Owner

nvie commented Jul 9, 2010

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

@kennethreitz

This comment has been minimized.

Show comment Hide comment
@kennethreitz

kennethreitz Aug 25, 2010

Going schizo on us? :P

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

Going schizo on us? :P

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

@tianon

This comment has been minimized.

Show comment Hide comment
@tianon

tianon Aug 27, 2010

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 Aug 27, 2010

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

This comment has been minimized.

Show comment Hide comment
@tianon

tianon Aug 27, 2010

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

tianon commented Aug 27, 2010

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

@nvie

This comment has been minimized.

Show comment Hide comment
@nvie

nvie Aug 27, 2010

Owner

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!

Owner

nvie commented Aug 27, 2010

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

This comment has been minimized.

Show comment Hide comment
@kilianc

kilianc Sep 16, 2010

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

kilianc commented Sep 16, 2010

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

@keithamus

This comment has been minimized.

Show comment Hide comment
@keithamus

keithamus Jan 5, 2011

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!

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

This comment has been minimized.

Show comment Hide comment
@dolmen

dolmen Mar 20, 2011

Contributor

msysgit already has to bundle:

  • Perl 5
  • TCL 8.5

Don't you think this is enough?

Contributor

dolmen commented Mar 20, 2011

msysgit already has to bundle:

  • Perl 5
  • TCL 8.5

Don't you think this is enough?

@eloyesp

This comment has been minimized.

Show comment Hide comment
@eloyesp

eloyesp Dec 19, 2011

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.

eloyesp commented Dec 19, 2011

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

This comment has been minimized.

Show comment Hide comment
@kennethreitz

kennethreitz Dec 19, 2011

I think bash is the best choice.

I think bash is the best choice.

@mgaitan

This comment has been minimized.

Show comment Hide comment
@mgaitan

mgaitan May 31, 2013

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)

mgaitan commented May 31, 2013

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

This comment has been minimized.

Show comment Hide comment
@webwurst

webwurst Jun 4, 2013

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

webwurst commented Jun 4, 2013

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

@88Alex

This comment has been minimized.

Show comment Hide comment
@88Alex

88Alex Jul 12, 2013

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

88Alex commented Jul 12, 2013

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

@88Alex

This comment has been minimized.

Show comment Hide comment
@88Alex

88Alex Jul 12, 2013

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.

88Alex commented Jul 12, 2013

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.

@88Alex 88Alex referenced this issue in petervanderdoes/gitflow-avh Jul 12, 2013

Closed

Rewrite in Ruby #98

@jbiason

This comment has been minimized.

Show comment Hide comment
@jbiason

jbiason Jul 12, 2013

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.

jbiason commented Jul 12, 2013

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

This comment has been minimized.

Show comment Hide comment
@kennethreitz

kennethreitz Jul 12, 2013

meh, the whole thing should be bash :)

meh, the whole thing should be bash :)

@robertwe

This comment has been minimized.

Show comment Hide comment
@robertwe

robertwe Jul 12, 2013

@kennethreitz and dude you are right here.

@kennethreitz and dude you are right here.

@SparK-Cruz

This comment has been minimized.

Show comment Hide comment
@SparK-Cruz

SparK-Cruz Jul 15, 2013

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

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

@88Alex

This comment has been minimized.

Show comment Hide comment
@88Alex

88Alex Jul 15, 2013

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!)

88Alex commented Jul 15, 2013

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

This comment has been minimized.

Show comment Hide comment
@tdjordan

tdjordan Jul 15, 2013

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
.

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

This comment has been minimized.

Show comment Hide comment
@mgaitan

mgaitan Jul 15, 2013

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)

mgaitan commented Jul 15, 2013

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

This comment has been minimized.

Show comment Hide comment
@SparK-Cruz

SparK-Cruz Jul 16, 2013

@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.

@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.

@tbass

This comment has been minimized.

Show comment Hide comment
@tbass

tbass Jul 23, 2013

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

tbass commented Jul 23, 2013

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment