Chris Lattner <clattner at apple.com> writes:> You need to separate "what is good for David" from "what is good for > the project". Encouraging decentralized development and long-lived > branches is not actually in the best interest of the project. > > I agree that there are some (quite minor IMO, like offline commits) > advantages that git can provide over SVN for the preferred llvm > development workflow.You need to separate "what is good for Chris" from "what is good for the project" :-) Offline commits are useful for Chris when he is on a place without internet access. But offline commits are a godsend for people who still have no commit rights or for developers who are conducting a series of "what if" experiments. But whatever. Evaluating one feature at a time from our personal experiences or prejudices is wrong, wrong, wrong. What matters is the big picture and how it fits the whole project, taking into account current and potential contributors. The transition from svn to git is a *social* evolution, not merely a technical one like the migration from cvs to svn was. The convenience of committing while you are in a plane is insignificant compared with the impact such social change can have on the project.> However, there are also large costs to switch (both in terms of > effort, but also in terms of forcing lots of people to learn new > things) and the result is going to be *worst* in as many places as it > is better.How do you know this? How much experience do you have with this kind of transitions? (No, cvs -> svn doesn't count, see above)> I don't see the conversion to Git actually happening until someone can > clearly demonstrate a win for the open source project.A really interesting path is one that starts by explicitly stating the fundamentals of LLVM project development. Things like release-level code quality at all times combined with fast and smooth development, etc. Let's put aside the policies you implemented for achieving the fundamental goals, which are conditioned by the tools you had at the time you stated them. If you wish, bring those policies up for critical review compared with the possibilities provided by the new tool, but at a later point on the discussion.
Óscar Fuentes <ofv at wanadoo.es> writes:> The transition from svn to git is a *social* evolution, not merely a > technical one like the migration from cvs to svn was. The convenience > of committing while you are in a plane is insignificant compared with > the impact such social change can have on the project.Thanks Oscar, I think this is exactly right. A switch to git is scary because it *is* a shift in how we think about the project. For example, what is the easiest way for people to contribute? I agree with Oscar that a private branch to work out changes and tool support for sending those changes upstream is a much lower barrier than crafting patches individually (and guessing the perfect line of development in the process) or ripping apart an svn workarea diff (after lots of experimenting and getting things right) to feed incremental changes upstream. And again, God help you if you need to rework those patches after getting feedback. SVN is no help there. So even if we ignore everying else people have posted about the advantages of git for the project (and we do so at our own peril, IMHO), if growing the developer pool is important, git/DVCS is the clear winner to me. -Dave
On Sep 8, 2011, at 7:09 PM, Óscar Fuentes wrote:> Offline commits are useful for Chris when he is on a place without > internet access. But offline commits are a godsend for people who still > have no commit rights or for developers who are conducting a series of > "what if" experiments.If people need commit access, they should ask for it. I'm not aware of anyone who is regularly contributing code that hasn't got commit access. On Sep 8, 2011, at 9:30 PM, David A. Greene wrote:> Óscar Fuentes <ofv at wanadoo.es> writes: >> The transition from svn to git is a *social* evolution, not merely a >> technical one like the migration from cvs to svn was. The convenience >> of committing while you are in a plane is insignificant compared with >> the impact such social change can have on the project. > > Thanks Oscar, I think this is exactly right. > > A switch to git is scary because it *is* a shift in how we think about > the project.If you're coming at this from the "llvm development processes are broken, we should switch to git so that we can fix them" then I'd claim that you're doing it backwards. Point out what the workflow problems are, the development processes that should change, and *concrete* and *implementable* suggestions of how to make things better. Don't make the assumption that switching to git will magically solve all of our workflow/social problems. A very real problem we have is "not enough reviewers". I don't see how VCS has anything to do with this very real and present problem. Lets have a discussion about the real problems, instead of an interminable discussion about git vs svn. On Sep 9, 2011, at 6:12 AM, Joerg Sonnenberger wrote:> The barrier of entry for the LLVM.org repositories is low. Getting > review is normally easy. If it isn't, Git isn't going to improve the > situation. If a switch to git is desirable to You (not meaning Justin), > keep in mind that what is easy for one person can create a burden on > someone else. The LLVM development style exists for a reason and matches > what many other, often much older and just as large, projects do.+1 On Sep 9, 2011, at 8:28 AM, Jakob Stoklund Olesen wrote:> I have been using git-svn for all of the three years I have been imposing my patches on the LLVM project. I have made maybe 10 commits with svn and 1300 with git-svn. I make offline commits, local branches, and I clean up my patches using 'git rebase -i' before committing. I couldn't care less if I have to type 'git svn dcommit' or 'git push' to commit stuff.On Sep 9, 2011, at 9:53 AM, Wesley Peck wrote:> Just to be clear and upfront, I don't particularly care if the master repository is git or svn. I'm not a full time LLVM developer and I just use git-svn when needed.+2: The main repository being SVN doesn't prevent people who want to use Git or offline workflows from doing so. These are all reasons why I see the actual switch to git for the main repository to be almost completely unmotivated right now. Whether git advocates want to admit it or not, there is a *very real cost* to switching. We have a healthy and active community (which admitted is not without problems) so at least something is working right. Any discussion of switching to Git should be focused on how it benefits the people who are contributing code on a daily basis, not on how it helps the occasional contributor. This is not to say that the occasional contributor is unimportant, it is just to say that we shouldn't make it easier for them at the expense of mainstream development. Further, the occasional developers are not the ones who will ultimately make the call on it, so they're not the ones you need to convince! :) -Chris
Chris Lattner <clattner at apple.com> writes:>> A switch to git is scary because it *is* a shift in how we think about >> the project. > > If you're coming at this from the "llvm development processes are > broken, we should switch to git so that we can fix them" then I'd > claim that you're doing it backwards.That's not what I'm saying. As much as I dislike the analogy and think it gets way overused, I think it may actually apply here. Moving from svn to a DVCS (whichever one it is) is moving from the Cathedral to the Bazaar. That's the scary/unknown part. The processes can be exactly the same. I am not advocating for any process changes. It is very important to understand this. git does not impose any process changes. The differences are in barrier to entry, ability to share amonst sub-projects, ability to manage private repositories and other things we simply cannot do with svn right now. But we've had all of this discussion and it looks like we're sticking with svn. I'll deal with it. -Dave