Live data from Hacker News

PHP will switch to git

news.php.net

21–30 of 108 posts

Re: PHP will switch to git

#21

Earlier quoted context omitted.

>I love how easy it is to commit to projects on github It's as simple to commit projects to github as it is to sf, bitbucket, google code, etc. Wait... you need to set up ssh credentials on github... sorry, it's more difficult to commit a project to github than it is to most of the alternatives. >Also love the idea of a centralized place to follow all your favorite projects. It's good that we like different things. I…

nothing to do with being "cool". Github have created a great piece of management software to view and manage your git repositories. It's easy to use and that is why its popular not used because its popular. Git itself is popular because its easier to use than SVN and is decentralized which is very useful.

> Github have created a great piece of management software to view and manage your git repositories

Therein lies the problem, and why it's not a good collaboration space for everyone (as has been implied elsewhere in this thread). I won't use it simply because I dislike dealing with git, for example. Yes, it's a great tool if you want to use git. The mentality I've seen become more prevalent over the last year to two years, however, is that you must be on Github to "do open source right"--setting aside the obvious silliness of that, it does still exist in a lot of places.

If they supported hg with the same infrastructure, I'd consider switching off of bitbucket, but given the Github folks' public behaviors in the past, it wouldn't be a guarantee. I've been treated very well by Atlassian and don't think particularly highly of the Github guys.

Re: PHP will switch to git

#23
post #6

Earlier quoted context omitted.

because github is one of the most visible and most visited source hosting sites?

I still don't get your point. It's the most visited source hosting site, no doubt about that, so...? On the subject of the topic, I'm getting tired of this git euforia. The linked message says zero about the reason beyond a simple direct voting. So, for no reason they decided to have a voting and ignore the reasons why people vote whatever they did? Sounds like a pretty useless voting for me. Well, except if you want…

Well Git is simply great. It's fast, it's powerful, there's a very helpful community, it's integrated everywhere, there are well made and useful online repository (Yes Github, but others too), the list goes on and on. Yes, there are bazaar, mercurial and probably dozen of others, but there's also git.

I'm not sure I get your point. I think what you don't like is that they chose to jump on git without real reason instead of carefully comparing other alternatives. It might be true.. or it might not. All great programmers try various version control.. if the majority of them prefered Git for their personal projects, why not switch to it? And, for open source project, Github is really just too useful.

Re: PHP will switch to git

#25
post #2

Rasmus gave a talk yesterday and I asked if they were switching to github. He said they'd likely switch to git (it's now happening, apparently), but not github because it can't do ACLs and the PHP project has thousands of people who need commit access to various places.

And plain Git can do ACLs? I didn't know that.

I assume you already know this, i.e. the above was sarcasm, but: No, it can't. But since remote access to Git most commonly happens over SSH, ACLs can be implemented by additional tools which serve as the login shell and filter the git commands the client wants to run. The best such tool right now is gitolite, building on concepts established by gitosis. The GitHub-like open source web repo manager Gitorious also implements an ACL system that way.

Re: PHP will switch to git

#26
post #5
post #2

Rasmus gave a talk yesterday and I asked if they were switching to github. He said they'd likely switch to git (it's now happening, apparently), but not github because it can't do ACLs and the PHP project has thousands of people who need commit access to various places.

exactly, they want to keep their karma system. But a github mirror is not unlikely. Oh, and that's the reason why the mail states that they'll now figure out how to move php-src to git.

There is already a github mirror:

https://github.com/php/php-src

Re: PHP will switch to git

#27
post #23

Earlier quoted context omitted.

I still don't get your point. It's the most visited source hosting site, no doubt about that, so...? On the subject of the topic, I'm getting tired of this git euforia. The linked message says zero about the reason beyond a simple direct voting. So, for no reason they decided to have a voting and ignore the reasons why people vote whatever they did? Sounds like a pretty useless voting for me. Well, except if you want…

Well Git is simply great. It's fast, it's powerful, there's a very helpful community, it's integrated everywhere, there are well made and useful online repository (Yes Github, but others too), the list goes on and on. Yes, there are bazaar, mercurial and probably dozen of others, but there's also git. I'm not sure I get your point. I think what you don't like is that they chose to jump on git without real reason inst…

My point is rather simple: Everybody is jumping in the git/github bandwagen but the huge majority doesn't appear to be able to state practical advantage of git besides github popularity. That is my point.

Not saying that there are no advantages, but heck, changing to something else because "it should be good, everyone else is doing it" is plain stupid... and very silly. And those are attributes we wouldn't want to welcome to the hackers' community.

Re: PHP will switch to git

#28
post #24
post #22

Earlier quoted context omitted.

Haha. You beat me to it!

I went from 999 to 992. I guess I should have kept my mouth shut, but it was worth it. But tbh, I have nothing against PHP; it was just a joke.

And it was a good joke!

I worked with PHP from 2004 to 2010. I worked with PEAR packages, early-adopted and watched the evolution of Zend Framework, ran both the local PHP user group and company's internal PHP user group, used ORM solutions like Doctrine and wrote my own, laughed along when people were handing out "Fails" stickers at php|tek (a play on the Rails logo), helped write some PHP coursework in college, etc. If I can't poke fun at PHP, who can?

I started using Rails for personal projects last year. When the opportunity arose, I was happy to join a consulting company that primarily uses Rails for web-based application development. Rails 3 (and now Rails 3.1) is awesome. Your joke is my recommendation to the folks I worked with that still do PHP all day: Check out some of the other things that are going on in the Ruby and Python communities. The developer experience is so much better.

Re: PHP will switch to git

#29

The votes are a stark contrast to those of the core Python developers when they were voting on which DVCS to migrate to[1]—although understandably they favoured Mercurial, they disfavoured git. (Bazaar got a good share of votes as well.) The victor's margin was much smaller. This was all early-2009, though. I wonder if git's increasing popularity has swayed the core PHP developers? [1] http://www.python.org/dev/peps/…

Interesting. I was a barely competent sysadmin that couldn't contain my interest in learning how to develop software. So, over the last 6 months I messed around with Vim and Emacs/ Git, Hg, and Bazaar/ and Erlang, Ruby, Lua and Python. I settled on Emacs, Python, and Git; however, the only choice I made that was overwhelmed by popularity was the choice of learning a DVCS because that is a central piece of the functionality: how easy it is to collaborate (as beginner I will fail w/o more informed collaborators). I realize I will have to spend lots of time on my chosen setup, but I hope in a few years I can make transitions more easily.

Re: PHP will switch to git

#30

Earlier quoted context omitted.

PHP has been mirrored on github for awhile already if you want to follow it and stuff: https://github.com/php I don't see what difference having a git.php.net repo vs a github one will make. It's the same vcs...

True, but git.php.net would be under their control with regards to what kind of infrastructure they want to set up on it. If they hosted it on GitHub, they would have to rely on GitHub's infrastructure instead of being able to develop and maintain their own.

FWIW, during KDE's (one of the largest open source communities around, with about 2500 active developer accounts with direct write access to many millions of lines of code across dozens of products, and large numbers of external contributors) ongoing migration from SVN to Git, GitHub was never considered as an option because the community considers it unacceptable for an open source community to throw their weight behind a proprietary solution.

Instead we seriously considered the open source alternative Gitorious.org for a while, but ultimately were unable to come to an agreement with Shortcut AS with regard to a satisfactory hosting plan, and also had troubles making its ACL system work for our needs in some exploratory migrations to the platform.

Self-hosting the Gitorious software also fell out of the running fairly quickly due to the ACL problems and other concerns about the software's features and implementation; while KDE probably would have been able to put together a squad of coders to work on the software in its interest, Shortcut at the time had failed to get a dev community around Gitorious off the ground and was unacceptably slow at processing merge requests - meaning a fork might have become necessary, which is always an icky proposition not to mention a big burden on resources.

Ultimately we ended up banging together our own Git infrastructure out of several smaller components, some of which we wrote ourselves:

* To handle access controls as well as the developer-facing repo management knobs (personal server-side clones, personal scratch repos, access management for those, a trashcan for repos, the works) we chose gitolite, which was definitely the best choice we could have made. It's reliable, well-documented, fast and rich in features, and its principal developer Sitaram Chamarty has been an incredible aid to our efforts both with many hours of work spent coding additional features we needed and tons of advice. We did write a couple of add-ins to gitolite ourselves to provide some additional commands to developers, which we found pleasant to do.

* As web-based repository viewer we use an inhouse-modified version of Redmine. As with gitolite, we've found the Redmine crew to be easy to approach and get help from, and while we ran into some trouble with the scalability of its Git support, it proved easy enough to modify without requiring massive forking. Redmine's database of projects serves a vital role in the system in that the gitolite config is generated from Redmine's database (e.g user access roles), and we also generate a custom-format XML from it that is used by end-user clone/build tools, our translation infrastructure, LXR and many other bits and pieces that have a need to discover projects and repositories and their metadata (which can be modified by project managers in the Redmine web UI, e.g. setting description texts or translation branches).

* For review, we use ReviewBoard, continuing on from SVN. This is definitely the weak spot in our setup right now; ReviewBoard just doesn't support Git very well since it's designed to handle single patches rather than series of them and thus also can't track branches. We've been looking at Gerrit on and off to replace it, but so far can't really bring ourselves to commit to it since it's a fairly unwieldy beast.

* We wrote our own repository hooks in Python, which are in charge of things like sending out commit mails to mailing lists, CIA.vc, the bug tracker and people mentioned in commit messages behind special keywords, evaluating other keywords to close bug tickets or review requests, check for trivial errors (EOL style, license headers, that sort of thing), ref backups and a bunch of other tasks. Some of which run through asynchronous job queues as required to avoid blocking.

* We wrote our own mirroring system to provide several read-only git:// mirror servers behind a geo-ip DNS load balancer. The mirrors get updated whenever a push to the master happens.

* KDE has an LDAP-based single sign-on system in use at many of its web properties including Redmine and ReviewBoard, currently using an inhouse-modified (mostly expanded with our own modules) version of GOsa as web frontend. GOsa is also used to request developer privileges and manage the SSH keys for Git write access.

* There are a couple of other minor bits and pieces flying about, like a commits.kde.org/ web app written in Ruby+Sinatra that forwards to the Redmine page for the commit; those URLs pop up in various places, e.g. in a developer's terminal output after pushing, in mail headers, CIA.vc postings, etc.

KDE's migration to Git is still ongoing, with many large and actively developed codebases still remaining in SVN at this time, as well as the entire translation effort. To actually migrate things we use our own tool called svn2git which takes raw SVN repo data, an account conversion map (supplied as plain text generated from our LDAP) and a plain text file with regex-based rules as input and produces git repositories. Writing the necessary rules files is unfortunately a time-intensive task especially given some very complex project histories originally imported from CVS, but additional tools exist to partially auto-generate them by analyzing SVN history programmatically.

Here's a couple of links of interest:

* The developer-facing user manual for KDE's Git infra: http://community.kde.org/Sysadmin/GitKdeOrgManual

* The initial posting of the sysadmin working group's plan for the above setup, and our evaluation of this stack vs. the Gitorious software (ODF of the latter is attached to the first reply): http://mail.kde.org/pipermail/kde-scm-interest/2010-June/001...

* The XML export from Redmine mentioned above: https://projects.kde.org/kde_projects.xml

Post reply on HN