Moving the repository to git?

This forum is dedicated to software development related to MultiWii.
It is not the right place to submit a setup problem.
Software download
Post Reply
zaggo
Posts: 10
Joined: Sun Aug 21, 2011 5:33 pm

Moving the repository to git?

Post by zaggo »

I'm not sure if this topic was already discussed before (searching for "git" in the forum didn't bring up any results):

Might it be possible to move the MultiWii repositories to git?
Currently, with the SVN repositories, it's really hard to create development branches of the software and keep the branched code in sync with the main trunk on googlecode.
Since there seem quite some people interested in helping to improve and extend the software, a revision control system better suited for distributed development would be a real time safer. Not only for developers, which would be able to easily create private branches of the software (and keep them in sync with the main fork), but also for the maintainer of the main repository (alex), since it's easy as pie to merge changes from other branches back to the trunk (pull requests et al.). Usually the merging is more or less automatic and thus also greatly reduces the risk of typos and missing code parts during manual (copy&paste) merges.
Hosting an open source project repositories on GitHub (and others, like Bitbucket) is free.
It's also no problem porting an existing svn repository (including all current revisions) to git. I'd be happy to help setting up the git repository and/or import the existing svn revisions into it.

Cheers!

User avatar
Hamburger
Posts: 2578
Joined: Tue Mar 01, 2011 2:14 pm
Location: air
Contact:

Re: Moving the repository to git?

Post by Hamburger »

from what I understand Alex wants to implement a staging process (described in another thread here).
With your experience with git would you say implementing and handling the staging will benefit/improve/ease when using git compared to svn?

Alexinparis
Posts: 1630
Joined: Wed Jan 19, 2011 9:07 pm

Re: Moving the repository to git?

Post by Alexinparis »

Hi,

You know, I'm not at all a software developer with all the background behind ;)
For the moment, I use a SVN googlecode repository with Tortoise SVN mostly to commit changes.
It's enough also to follow contributor changes and to share all devs.
I still didn't explore the checkout possibilities.
I know git is more powerful, but it would be one more tool to learn...

timecop
Posts: 1880
Joined: Fri Sep 02, 2011 4:48 pm

Re: Moving the repository to git?

Post by timecop »

Just more useless stuff to deal with for people who actually bother spending time to code.
Google code is fine, and SVN is fine. If you can't handle merging patches, you probably shouldn't be trying to submit code.

zaggo
Posts: 10
Joined: Sun Aug 21, 2011 5:33 pm

Re: Moving the repository to git?

Post by zaggo »

Alex: Sure, I know what you mean. Switching to a new revision control system can be scary, especially when the new one is git. But in my opinion the effort would be worth it. For example, the current integration of Captain Ixi's SBUS code in the trunk doesn't work (I helped Ixi coding it), because of some typos and missing parts during the manual merge of Ixi's and my code into the trunk (Ixi will contact you about that shortly). Something that likely doesn't happen with git's merging functionality.

Anyway, it was just a thought and I asked. It's definitely your decision. No sweat!
Meanwhile, I just create a copy of MultiWii's svn repository on GitHub for my own use.

dongs: Yeah, useless stuff. I'm sure millions of developers of open source projects, including the Linux OS, are just don't getting it and aren't as bright as you when it comes to manly manual merging of patches and keeping branches of distributed developments in sync. Oh please...

timecop
Posts: 1880
Joined: Fri Sep 02, 2011 4:48 pm

Re: Moving the repository to git?

Post by timecop »

Millions? You're kidding right. There aren't even millions of USERS of opensores code, never mind developers....
git was created to deal with the mess that is Linux, if it wasn't such a mess, git wouldn't be needed...

I'll be needing to merge 1.8p2 with latest dev/1.9 soon for my STM8 port, please educate me how 'git' is going to solve the problem for me. I've indent -kr'd the code because I hate dealing with unindented stuff and there's no way git will do a better job than manual merge on this...

zaggo
Posts: 10
Joined: Sun Aug 21, 2011 5:33 pm

Re: Moving the repository to git?

Post by zaggo »

Oh boy,dongs.
I'm certainly don't intend to let you drag me into any kind of svn/git flame war. I really have better things to do. Calm down, nobody takes svn from you.

luanlmd
Posts: 22
Joined: Mon Jan 23, 2012 8:03 pm

Re: Moving the repository to git?

Post by luanlmd »

dongs wrote:Millions? You're kidding right. There aren't even millions of USERS of opensores code, never mind developers....
git was created to deal with the mess that is Linux, if it wasn't such a mess, git wouldn't be needed...

I'll be needing to merge 1.8p2 with latest dev/1.9 soon for my STM8 port, please educate me how 'git' is going to solve the problem for me. I've indent -kr'd the code because I hate dealing with unindented stuff and there's no way git will do a better job than manual merge on this...


Yeah millions, that I'm sure of.
Any project with more than 1 developer can become a mess. Even 1 developer can make a mess if he has to patch and release something while doing some major changes. For that branches are used, and SVN suck at doing it.

But I'm not here to talk about Git/SVN, I'm more interested in the nice tools that GitHub offers, it does most of the social part of social coding. That is the cool thing!
You can track forks of other devs and can accept patches or not from anyone, not just from selected number of people. You can do it all via Web UI.

Danal
Posts: 137
Joined: Tue Oct 18, 2011 5:15 pm

Re: Moving the repository to git?

Post by Danal »

Alex makes the final call... but for what it is worth, another vote for staying on Google Code. I won't say why, so as not to contribute to debate. Just my personal opinion.

Danal

fax8
Posts: 61
Joined: Mon Feb 14, 2011 5:29 pm

Re: Moving the repository to git?

Post by fax8 »

Ever tried bzr? I like it a lot more than git.. bzr is very well documented and has a simple to use command syntax.

timecop
Posts: 1880
Joined: Fri Sep 02, 2011 4:48 pm

Re: Moving the repository to git?

Post by timecop »

This is the problem with lunix and opensauce in general. Too many mediocre choices, too many experts.

Danal
Posts: 137
Joined: Tue Oct 18, 2011 5:15 pm

Re: Moving the repository to git?

Post by Danal »

dongs wrote:This is the problem with lunix and opensauce in general. Too many mediocre choices, too many experts.
:lol: :D

Quote of the week!

LenzGr
Posts: 166
Joined: Wed Nov 23, 2011 10:50 am
Location: Hamburg, Germany
Contact:

Re: Moving the repository to git?

Post by LenzGr »

fax8 wrote:Ever tried bzr? I like it a lot more than git.. bzr is very well documented and has a simple to use command syntax.

Agreed, bzr definitely has a lower learning curve than git when you come from an SVN background - less "gotchas", if you will. This is how I maintain my local changes while still being able to keep in sync with the SVN trunk (a clone of that repository is here. But usually these kind of discussions ("SVN sucks, let's move to $DVCS") turn into religious/holy wars really quickly. git is fairly well documented by now, too - and Google code actually supports it as well.

It's not my call to make, though - the core developers need to use, whatever they feel most comfortable/productive with. I'm just glad that I don't have to work with SVN on my end - both git and bzr can "talk" to an SVN server just fine (in both directions).

But I'd be glad to offer advice in case there are any thoughts about moving to some kind of distributed version control system. It's a topic I've been involved with a few times in the past...

Tommie
Posts: 438
Joined: Sun Apr 08, 2012 9:50 am

Re: Moving the repository to git?

Post by Tommie »

Hello,
at first, I am very sorry for excavating this old thread, but I think it is a fitting place to put my post.
Although I have some background in software development, I am fairly new to this project, but maybe this can yield some intersting perspectives.
Over the years, I have seen and used many version control systems, beginning with RCS, CVS and of course Subversion. I even worked for
companies not employing any kind of VCS (yes, some people are that stupid). Some time ago, I made the transition to git, which was completely new
to me - and to be honest, I will never ever go back. Once you worked with git (or almost any distributed VCS) for some time, you begin to wonder how
you were able to get any work done using archaic tools like SVN.

But I do not want to get religious about that, just let me present a few aspects that came to mind as someone familiar with a DVCS and willing to contribute:

* if I want to add additional features to Multiwii, what do I have to do? I can checkout the svn trunk, but how do I integrate my changes? Either I do not use version
control at all, or I create my own SVN copy, which is completely disconnected from the upstream release. I have to merge in any upstream changes manually.
=> This sucks.

Now what do you do with git?
You just clone the repository and create your own local branch. You can code, commit, etc. completely without disturbing the official repository. If the upstream version
advances, I can just let git merge in the new changes - automatically.
Once the extension is complete, I can ask the maintainer to pull my changes - they all get integrated into the main tree, without anyone merging a file manually. The repository
even keeps track of every change, what has been changed, who changed it and when. This is really useful for hunting down bugs.

Compare this to this changelog:

https://code.google.com/p/multiwii/source/list

"merging _shared" - so, what has changed exactly? Whose code was pulled in? A few hundred lines of code changed, but was exactly was done?

An DVCS provides a far better incentive for people to contribute - you can run your own little branch with your changes, without having special privileges on the main repository - and when you have finished your changes, they can be pulled in easily, with proper credit to you (or blame, if you introduced new bugs;).

Testing code is easier, tracking changes is easier. Once you git there, you never look back.

User avatar
Hamburger
Posts: 2578
Joined: Tue Mar 01, 2011 2:14 pm
Location: air
Contact:

Re: Moving the repository to git?

Post by Hamburger »

Not wanting to start this again - I do not care enough, the pain is not yet big enough.
When we discussed this last time the most important aspects were
1 only small number of developers like <20
2 svn is old enough majority knows how to use it already
3 keeping Alex job easy
4 individual branches should be only tempodary. We do not encourage long term forking

Tommie
Posts: 438
Joined: Sun Apr 08, 2012 9:50 am

Re: Moving the repository to git?

Post by Tommie »

Hamburger wrote:1 only small number of developers like <20

So the real question is: do you want additional participants? Distributed version control systems made it so much easier to contribute to various open source projects.
3 keeping Alex job easy

It could be easier, judging from the hoops one has to jump through to merge development branches and trunk with svn.
4 individual branches should be only tempodary. We do not encourage long term forking

And this actually is a pro-git argument. Branches in git are lightweight, as opposed to SVN. Reintegration is part of the concept.

Watching the forum and svn, I noticed that there a quite a few projects running in parallel: a few people are tweaking sensors, others are adding telemetry or LEDs to their copters. Allowing all of them to commit their changes in their own repository while enabling Alex to conviniently pull their changes into the main tree (without manual merging!) would make life easier for everyone.

As I said, I don't want to get start a trench war here, I'd just like to see participation in the project get easier - both for contributors and Alex of course.
And of course I don't expect everyone to drop their existing and familar tools and run towards git, but I (and a few silent others) are more than willing to introduce everyone to a convinient, distributed workflow.

acemtp
Posts: 12
Joined: Mon Jul 16, 2012 8:33 am

Re: Moving the repository to git?

Post by acemtp »

Hello hackers,

I don't post here to troll or flame. I don't plan to make you change your mine. I just want to support luanlmd, zaggo and Tommie initiative and add my +1 and tell that it would be a really nice to move to github.

I worked with visual assist, perforce, cvs, svn, mercurial and git. Moving from VCS to DVCS is a nice to have but really not so important in this sort of project but...

GitHub website is really wonderful. It is fully organized around the community and that make all the difference.

- In one click you can download the trunk in tgz or zip so you don't even have to install tortoise or whatever.

- For tortoisesvn user, there's tortoisegit that make as easy as svn to use, you commit, you update, done.

- The issue tracking is really easy and clean. People can submit patched and so on. Jquery example: https://github.com/jquery/jquery-mobile/issues

- Everybody can clone official repo or clone a clone, modify, commit on his clone and then easily to some pull request to move nice chances to the main trunk, and everything just with some click. https://github.com/jquery/jquery-mobile/pulls

- The wiki is nice too so people can populate it and have a nice place to put all info, always up to date because people can commit on it.

- Useless things like graph and stats are cool to https://github.com/jquery/jquery-mobile/graphs

I know I'm a very bad seller but I had to try :)

See you soon and have a nice week!

LenzGr
Posts: 166
Joined: Wed Nov 23, 2011 10:50 am
Location: Hamburg, Germany
Contact:

Re: Moving the repository to git?

Post by LenzGr »

FWIW, there was some related discussion about moving to git etc. on the 2.1 release thread. I summarized some of the benefits here: viewtopic.php?f=8&t=2007&start=50#p18507

Sebbi
Posts: 478
Joined: Sun Jul 08, 2012 1:08 am
Location: Germany
Contact:

Re: Moving the repository to git?

Post by Sebbi »

Well ... I also +1 this request. Reasons?

* It is nice to have local repositories which can stay in sync with the source, but let me change code with the ability to track my changes (nobody gets it in the first run and when you made a mistake you want to have a possibility to see older revisions of what you did)
* Merges aren't "merged branch x to trunk", but include a complete history of every change
* I'd prefer Github over git on Google Code because it makes it so much easier for so called "noobs" and experienced developers alike (and doesn't look ugly as hell). In the end it doesn't really matter because you could just have a clone on Github which is not supported by the MultiWii team (there are a lot of clones right now, but most of them don't seem to keep in sync with the svn trunk of the official releases)

Just my 2 cents.

frog32
Posts: 55
Joined: Sun Nov 20, 2011 9:39 pm

Re: Moving the repository to git?

Post by frog32 »

+1
I use git every day and it makes it so easy to do local changes without loosing track to upstream updates. it actually encourages me to contribute to a lot of projects.
svn makes it really hard to tack code, if alex is merging shared to his branch it's almost impossible to see who did this stuff that has been merged and which commits have been merged.

Tommie
Posts: 438
Joined: Sun Apr 08, 2012 9:50 am

Re: Moving the repository to git?

Post by Tommie »

Another thing: Since git branches are lightweight and local, one can use them for debugging. This prevents debugging code from slipping into production releases, making it necessary to silenty fix it and replace the archive file without incrementing its version number.

Tommie
Posts: 438
Joined: Sun Apr 08, 2012 9:50 am

Re: Moving the repository to git?

Post by Tommie »

For anyone wanting to try out git with Multiwii, I'm keeping my repository at https://github.com/wertarbyte/multiwii-firmware in sync with the official svn (the branch upstream_shared is updated constantly). So if you want to give it a spin, just clone the repository and start contributing. The same goes for the gui: https://github.com/wertarbyte/multiwii-conf

fiendie
Posts: 151
Joined: Fri Apr 20, 2012 4:22 pm

Re: Moving the repository to git?

Post by fiendie »

I second the idea.
So many open source projects are moving to git because it makes collaboration so easy.

But it doesn't have to be GitHub. I'd just leave it on Google Code and you can keep your collaborators, your Wiki, the whole shebang.
And as was already mentioned, Git doesn't care where the repository is located.

Plus, converting is not even a lot of work: http://code.google.com/p/support/wiki/ConvertingSvnToGit

It worked wonderfully for the Swing GUI so far (https://github.com/treymarc/mwi-swing).
Might be worth a shot now that 2.1 is out.

acemtp
Posts: 12
Joined: Mon Jul 16, 2012 8:33 am

Re: Moving the repository to git?

Post by acemtp »

Tommie, I saw you git svn sync, it's quite cool, I planned to do the git-svn snc it so it's nice to see that it's already made. I'll fork it to develop my own changes.

What is sad is that without official message/move, people do things by their own, there's already 3 different version multiwii on github, nobody know really which one is the best one, the community disperse instead of stick focus.

Tommie
Posts: 438
Joined: Sun Apr 08, 2012 9:50 am

Re: Moving the repository to git?

Post by Tommie »

Exactly. Concentrating on a single clone would certainly the best choice.

User avatar
treym
Posts: 258
Joined: Sat Jul 21, 2012 12:28 am

Re: Moving the repository to git?

Post by treym »

fiendie wrote:It worked wonderfully for the Swing GUI so far (https://github.com/treymarc/mwi-swing).
Might be worth a shot now that 2.1 is out.


Hi all,

I changed the ownership of the Swing GUI repo ..

https://github.com/multiwii/multiwii-gui-swing

:)

fiendie
Posts: 151
Joined: Fri Apr 20, 2012 4:22 pm

Re: Moving the repository to git?

Post by fiendie »

We should probably clarify a few things about the organisation on GitHub.
It is in no way meant as competition to the SVN repository.
The multiwii-firmware repository is a pristine copy of the SVN _shared repo and is supposed to act as a playground/testbed for anyone interested in working with Git.
It would be great if any of the current devs were interested in testing it.
It is possible to commit the changes made to the clone of your Github repository back to SVN.

Of course the workflow will be documented to make it as easy as possible for people who are not familiar with Git.
In the meantime I would invite anyone who would like to give it a shot to visit #multiwii on Freenode.

Cheers
Andy

User avatar
treym
Posts: 258
Joined: Sat Jul 21, 2012 12:28 am

Re: Moving the repository to git?

Post by treym »

The multiwii-firmware repository is for everyone who want git access to the code and share branch with other

The multiwii-firmware repository is for patches, ideas and experiments that can not take place in the shared svn or any activities (doc and wiki included)

The multiwii-firmware repository will not commit your changes to the official svn (only a official dev can do that, and this is still a very political point so do not count on it)

The multiwii-firmware repository have no master branch , so no pull request (but users may maintains branch in THEIR repo)

i you have question , please ask here ..

User avatar
shikra
Posts: 783
Joined: Wed Mar 30, 2011 7:58 pm

Re: Moving the repository to git?

Post by shikra »

Sorry - just not seeing a huge benefit in moving myself.... current setup under Alex control was worked well for 2 years.

I understand that people like the environment though.

Sebbi
Posts: 478
Joined: Sun Jul 08, 2012 1:08 am
Location: Germany
Contact:

Re: Moving the repository to git?

Post by Sebbi »

shikra wrote:Sorry - just not seeing a huge benefit in moving myself.... current setup under Alex control was worked well for 2 years.

I understand that people like the environment though.


* Easier branching
* No cryptic merge messages without all the commit messages from the merge
* Local repositories for everybody
* Pull requests
* Nice graphs ;-)

fiendie
Posts: 151
Joined: Fri Apr 20, 2012 4:22 pm

Re: Moving the repository to git?

Post by fiendie »

shikra wrote:Sorry - just not seeing a huge benefit in moving myself.... current setup under Alex control was worked well for 2 years.

I understand that people like the environment though.


I think this is a little misunderstanding. No one is suggesting that everybody and his mother can push changes to the official repository. Control over the official codebase should remain solely with Alex of course.

If anything you have even finer control over contributions. You can keep a trusted set of collaborators and everybody else just forks the code and starts hacking away. The good stuff can be easily merged into the main repository.

Don't think of it as moving. It's set up so that you can keep using SVN and Git side by side without any problems.

User avatar
shikra
Posts: 783
Joined: Wed Mar 30, 2011 7:58 pm

Re: Moving the repository to git?

Post by shikra »

OK - I understand ...

Liftoff
Posts: 15
Joined: Wed Jun 27, 2012 8:41 pm

Re: Moving the repository to git?

Post by Liftoff »

I have used the 3 version control systems for quite some time.

Boat loads of features often come at the cost of complexity.

With the experience we've accumulated so far, I think the sweet spot is bzr.

git is better than svn, but bzr is better than git. When I say bzr is better than git, this is my opinion based on a blend of features and ease of use.

bzr has an outstanding GUI, clearly superior to any corresponding tool I've been able to find for git, and is easier to use.

We've used bzr in the KiCad project for several years, and I don't know of anyone who is second guessing the decision to switch from svn about 3 years ago.

bzr is easier to learn than git, and includes enough features to give you your distributed version control, without offering too much which then becomes harder to learn.

I've owned a software company for 30 years, and we even use bzr internally for all our company code. Even just today, I heard one of my developers say that he hates git by comparison to bzr. Honestly, it happened today. And it happened as he had to use git to download the new mwii-gui-swing project for hobbyist purposes.

Liftoff-Sr.

Liftoff
Posts: 15
Joined: Wed Jun 27, 2012 8:41 pm

Re: Moving the repository to git?

Post by Liftoff »

http://emacswiki.org/emacs/BzrForEmacsDevs

When first learning bzr, I found the above link to be very comforting. It allowed me to use bzr just like svn initially, then grow into more advanced features according to my comfort zone.

acemtp
Posts: 12
Joined: Mon Jul 16, 2012 8:33 am

Re: Moving the repository to git?

Post by acemtp »

Liftoff: I hope you'll soon make a version of MultiWiiConfig working for emacs because this graphical interface is too much 2000, it's just too innovative ;)

User avatar
treym
Posts: 258
Joined: Sat Jul 21, 2012 12:28 am

Re: Moving the repository to git?

Post by treym »

enjoy spending time messing around with your version control system ?

http://bramcohen.livejournal.com/74462.html

frog32
Posts: 55
Joined: Sun Nov 20, 2011 9:39 pm

Re: Moving the repository to git?

Post by frog32 »

i think the best way is to use the githubrepo https://github.com/multiwii/multiwii-firmware and fork from there. once there are some developers using git it's easier for alex and other developers to decide if they want to switch from svn to git. i saw some big projects switching from svn to git after more than 50% of the contributors used the github repo which was unofficial but maintained by a core developer.

luanlmd
Posts: 22
Joined: Mon Jan 23, 2012 8:03 pm

Re: Moving the repository to git?

Post by luanlmd »

frog32 wrote:i think the best way is to use the githubrepo https://github.com/multiwii/multiwii-firmware and fork from there. once there are some developers using git it's easier for alex and other developers to decide if they want to switch from svn to git. i saw some big projects switching from svn to git after more than 50% of the contributors used the github repo which was unofficial but maintained by a core developer.


good point! I'm watching the repository already.

btw this way to see who did changes is what makes git/github so great: https://github.com/multiwii/multiwii-firmware/network

User avatar
jstapels
Posts: 23
Joined: Sun Mar 04, 2012 8:50 pm
Location: Software Engineer

Re: Moving the repository to git?

Post by jstapels »

I don't have a lot of experience using git, but what little I do have (when working with OpenSource projects), it's truly amazing how much better it can be for project maintainers when paired with github's features. Indeed, I would encourage anyone curious about this to read about GitHub pull request feature...

https://help.github.com/articles/using-pull-requests

I believe this feature alone would make the switch to github worth it IMHO.

timecop
Posts: 1880
Joined: Fri Sep 02, 2011 4:48 pm

Re: Moving the repository to git?

Post by timecop »

How is this any different from manually merging changes anyway.
I have yet to see any compelling feature of git that makes it amazing (as you describe) that would warrant a switch away from SVN.
So far all I can see is tools written in python, new RCS to learn, no proper working windows GUI, and no visible advantages.

User avatar
jstapels
Posts: 23
Joined: Sun Mar 04, 2012 8:50 pm
Location: Software Engineer

Re: Moving the repository to git?

Post by jstapels »

dongs wrote:How is this any different from manually merging changes anyway.
I have yet to see any compelling feature of git that makes it amazing (as you describe) that would warrant a switch away from SVN.
So far all I can see is tools written in python, new RCS to learn, no proper working windows GUI, and no visible advantages.


I don't really want to start any sort of holy war, I use SVN in my day to day job and love it (when I compare it to old school CVS). But for me, I personally find the git+github integration much easier for suggesting patches and allowing others to see my changes than having to pass around patch files (as is typically done). It also allows me to very easily see changes/forks others have made very quickly without having to go crawling through threads to find the patch files.

I'm very thankful for MultiWii and that it is a very vibrate FOSS project. I just wanted to echo that the primary contributors might find a switch over to github would very possibly make their lives easier when dealing with the many many merge requests they get. It would also make it easier for "side groups" to work on things like ARM support without having to setup extra Google Projects or ancillary subversion branches.

If you've looked over Git and still think Svn is the better answer, great. But if you haven't looked into git, I urge you to check it out, there's a reason Linus Torvalds (of linux fame) felt compelled to write it despite subversion being available.

Post Reply