Add ‘git flow’ to msysgit?

479 views
Skip to first unread message

Albert

unread,
Dec 6, 2011, 9:17:52 PM12/6/11
to msy...@googlegroups.com
Hi all,

I’ve recently started using ‘git flow’ [1][2] for my development, and though it might be nice to include the scripts and distribute them with msysGit. They are a fairly useful set of scripts.

Before submitting a patch to the mailing list I wanted to discuss the possible inclusion with the msysGit developers.

I see two potential issues with the inclusion of ‘git flow’ in msysGit.

Issue 1 – New Executables:
The scripts requires an extra executables and dll to be included in the distribution. The executable in question is  getopt.exe and it’s dependency libinitl3.dll.
I don’t really know if including these would be considered a ‘deal breaker’ for the msysGit team, thus this question.

Issue 2 – Licensing:
The licensing, while permissive of distribution in not a ‘standard’ FOSS license. The license is below:

"
Copyright 2010 Vincent Driessen. All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

   1. Redistributions of source code must retain the above copyright notice,
      this list of conditions and the following disclaimer.

   2. Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY VINCENT DRIESSEN ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL VINCENT DRIESSEN OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

The views and conclusions contained in the software and documentation are those
of the authors and should not be interpreted as representing official policies,
either expressed or implied, of Vincent Driessen."

Personally I think there should not be any issues with licensing and including the scripts as-is in msysGit, but I wanted to bring this up with the developers.

Assuming the developers are happy to proceed, I will create a patch when I have some time.

[1] http://nvie.com/posts/a-successful-git-branching-model/
[2] https://github.com/nvie/gitflow

Mathieu Clavel

unread,
Dec 7, 2011, 5:13:24 AM12/7/11
to msy...@googlegroups.com
Hi,

With 'git flow' (gf), it could be interesting to add 'git flow
completion' (gfc) [1].
I'm using it on windows with 'git flow' and it's working.
I just have an issue, open since September the 21st, that completion is
not working with alias.
As no one has answered me on the github repo of gfc, I'm asking here if
someone using git and gf and gfc on windows has the same problem.

I have aliased 'flow feature finish' (closing a feature and merging it
to dev) on fff.
When I write 'git flow feature finish' + tab + tab, I get the list of
the unfinished features.
If I try to do the same with 'git fff' + tab + tab, I get the same list
as 'git flow' + tab + tab
I'm interested to know if it's a problem of gf/gfc or it's a problem
only on my machine.

Thanks for the hard work to enable us to use git on windows.

Mathieu CLAVEL

[1] https://github.com/bobthecow/git-flow-completion

Nguyen Thai Ngoc Duy

unread,
Dec 7, 2011, 7:19:02 AM12/7/11
to msy...@googlegroups.com
On Wed, Dec 7, 2011 at 9:17 AM, Albert <pro-...@optusnet.com.au> wrote:
> Hi all,
>
> I’ve recently started using ‘git flow’ [1][2] for my development, and though
> it might be nice to include the scripts and distribute them with msysGit.
> They are a fairly useful set of scripts.

I don't see any git-flow depdencies on msysgit. If you want to get it
included, why not reach for a broader user base, nearly all git users,
by proposing it on g...@vger.kernel.org? If it gets included, msysgit
will have it eventually.

Regarding getopt.exe, git.exe supports parsing options from command
line too (see some git commands written in shell script). It may be
powerful enough for your needs.
--
Duy

Johannes Schindelin

unread,
Dec 7, 2011, 11:24:27 AM12/7/11
to Albert, msy...@googlegroups.com
Hi,

On Tue, 6 Dec 2011, Albert wrote:

> IοΏ½ve recently started using οΏ½git flowοΏ½ [1][2] for my development, and


> though it might be nice to include the scripts and distribute them with
> msysGit. They are a fairly useful set of scripts.

Is this the thing that messes up every 'master' branch by making
unnecessary merge commits from a 'development' branch? If so, I am not
quite sure I like it enough.

Maybe when I finally found some time and work on Sebastian's mingwGit
project, we could make git-flow another mingw-get repository?

In any case, you could always make your own installer, so there is no need
to wait for any ACK or NAK.

> Copyright 2010 Vincent Driessen. All rights reserved.
>
> Redistribution and use in source and binary forms, with or without
> modification, are permitted provided that the following conditions are
> met:
>

> [...]

Looks like a BSD license to me.

Ciao,
Johannes

Albert

unread,
Dec 9, 2011, 10:21:40 PM12/9/11
to msy...@googlegroups.com, Albert


dscho wrote:

Is this the thing that messes up every 'master' branch by making
unnecessary merge commits from a 'development' branch? If so, I am not
quite sure I like it enough.

Probably, it is just a set of scripts that dose some funny merging, but it does make life easier for new people working with Git.
 

Maybe when I finally found some time and work on Sebastian's mingwGit
project, we could make git-flow another mingw-get repository?

 Will give it a try when that happens :)

Looks like a BSD license to me.

Oh yeah, it is, for some reason I was actually expecting the words "BSD" in there.

Like I said in the original post, it's not actually very hard to add into the msysgit distribution, it's a handful of scripts, an exe and a dll that the scripts depend on, and then it works with msysGit. I've seen more 'interest' in it of late, and figured it might be nice if it comes 'out of the box' in the distribution,  even if some people don't use it.

Albert

unread,
Dec 14, 2011, 3:41:17 PM12/14/11
to msy...@googlegroups.com, Albert
I've pushed the changes required to have git-flow integrate with msysGit and installer to here: https://github.com/pro-logic/msysgit/tree/add-git-flow diff here https://github.com/pro-logic/msysgit/compare/master...add-git-flow
While it may not be included in the main msysGit distro, it might be of use for others that want to build custom installers.

Pat Thoyts

unread,
Dec 14, 2011, 4:03:51 PM12/14/11
to msy...@googlegroups.com, Albert

I see no reason not to provide the facility if people want to use
this. However, what you have made available there is a binary snapshot
of something. Its not clear where it came from. If you look at some of
the other bits we bring into msysGit you can see that the normal
scheme is to provide a release.sh script that builds and installs the
item from sources. For instance, the src/tcltk/release.sh fetches the
source distributions, unpacks and applies some patches, builds
everything and installs into the msysGit tree committing it in the
process.
The src/vim/release.sh script is much the same. The reason for this is
that such scripts encapsulate any project specific knowledge needed to
build these projects in our environment. So in future, anyone can see
how to re-build for upgrading the projects or fixing issues.
To summarize, I think we would rather accept a script that repeats
what you did to make the commit you link to rather than just the end
result.
Thanks,
Pat.

Albert

unread,
Dec 18, 2011, 4:51:19 PM12/18/11
to msy...@googlegroups.com, Albert
Scripting is a little bit outside my comfort zone, but I'm happy to give it a go.

I'll git it a try when I have some spare time.

Pat Thoyts

unread,
Dec 21, 2011, 5:20:06 AM12/21/11
to msy...@googlegroups.com, Albert

It should be fairly simple - you can just copy the vim release.sh and
hack it around until it runs the commands you need. Really these just
freeze what you did to install the git-flow scripts so everyone can
help maintain it in the future.

Albert

unread,
Dec 23, 2011, 12:53:31 AM12/23/11
to msy...@googlegroups.com, Albert
On Wednesday, 21 December 2011 21:20:06 UTC+11, Pat Thoyts wrote:

It should be fairly simple - you can just copy the vim release.sh and
hack it around until it runs the commands you need.

It should be. It's time i'm short of at the moment. The steps are easy.

1. Clone repo
2. copy 7 files
3. Done.

Now that the holidays are so close I'll get some time to finally play around with this :)

Albert

unread,
Dec 23, 2011, 8:14:08 PM12/23/11
to msy...@googlegroups.com, Albert
Ok, I had some time this morning...

If somebody wants to give me feedback on: https://github.com/pro-logic/msysgit/compare/master...add-git-flow specifically the release.sh. It's the first Bash script I've written in a very long time.

getopt.exe is sourced from cygwin, should getting that exe also be scripted?

Thanks!

Albert

unread,
Jan 5, 2012, 9:46:24 PM1/5/12
to msy...@googlegroups.com, Albert
It looks like the maintainers are getting ready to push out 1.7.8.2.

I'd like to politely bump this thread in the hope of this making it into the above mentioned release.

Thanks,
Albert

Sebastian Schuberth

unread,
Jan 6, 2012, 5:52:51 AM1/6/12
to msy...@googlegroups.com, Albert

To be honest I don't feel very comfortable with shipping this by default
with Git for Windows. The reasons basically are:

1) People might mistakenly take git-flow* for official Git commands,
with all side effect (reporting issues to us instead of upstream etc.),
and it might be confusing for people working on cross-platform project
that they do not have git-flow on Linux or Mac by default.

2) I'm not sure how large the git-flow user base is, but I have the
feeling it's rather small, and we simply cannot add all sorts of utility
scripts someone asks for. I also have about 10 custom Git scripts that I
use regularly, but I still would not add them to the main distribution.
Maybe someone could come up with an optional "contrib" package instead?

--
Sebastian Schuberth

Albert

unread,
Jan 6, 2012, 6:08:53 AM1/6/12
to msy...@googlegroups.com, Albert

On Friday, 6 January 2012 21:52:51 UTC+11, Sebastian Schuberth wrote:

To be honest I don't feel very comfortable with shipping this by default
with Git for Windows. The reasons basically are:

Fair enough.
 
Albert

Steffen Jaeckel

unread,
May 15, 2012, 4:58:45 AM5/15/12
to msy...@googlegroups.com, Albert
Reply all
Reply to author
Forward
0 new messages