Slashdot Mirror


Emacs Needs To Move To GitHub, Says ESR

hypnosec writes "Eric S. Raymond, co-founder of the Open Source Initiative, has recommended that Emacs should move to another version control system like GitHub, as bzr is dying. In an email, Raymond highlighted the key reasons why he believes that Emacs should move. Raymond said that bzr is moribund; its dev list has flatlined; and most of Canonical's in-house projects have already abandoned bzr and moved to GitHub. ESR believes that bzr's codebase is sufficiently mature to be used as a production tool, but he does mention that continuing to use the revision control system will have 'social and signaling effects damaging to Emacs's prospects.'" Update: 01/06 20:50 GMT by U L : ESR did not suggest Github the proprietary hosting platform for git, but rather git the version control system. Which is actually already available on Savannah (the bazaar repository is automatically synced with the git repository).

47 of 252 comments (clear)

  1. Git, not Github by codl · · Score: 5, Informative

    ESR's original posting does not mention Github at all.

    1. Re:Git, not Github by monzie · · Score: 2, Insightful

      Good catch there. If you read just the summary ( and not the article ) - it's misleading! Git != Github, folks. You may like Git *because* of github but please don't confuse the two.

    2. Re:Git, not Github by Desler · · Score: 5, Informative

      "The article" (the first link which is to hypnosec's spam site) also says Github. ESR's post says merely Git.

    3. Re:git, not GitHub by fuzzyfuzzyfungus · · Score: 4, Insightful

      The original source (ESR himself) never mentioned GitHub. Just git. Can people stop conflating the two please?

      C'mon, man, get with the times. Having 'protocols' with 'definitions' that allow for 'multiple vendor-neutral implementations' is so totally outdated, man. Everybody knows that the future is snappily named proprietary services dependent on a single vendor with a nonsensical business model, ideally accessible only through an iPhone app!

    4. Re:Git, not Github by Desler · · Score: 2

      There is no "they". "hypnosec" is "Ravi Mandalia". The mistake was made by the same person.

    5. Re:Git, not Github by slim · · Score: 2

      "They" is sometimes used as a non-gendered singular.

    6. Re: Git, not Github by Jeremiah+Cornelius · · Score: 2

      Will the last EMACS user, kindly turn out the lights?

      JWZ likes sitting in the dark... :-)

      --
      "Flyin' in just a sweet place,
      Never been known to fail..."
  2. What's bzr? by Anonymous Coward · · Score: 2, Interesting

    Never heard of it.

    1. Re:What's bzr? by Rinisari · · Score: 2

      Bazaar. It's a VCS that Canonical developed. Why Switch to Bazaar?

      IMO, the only things that Bazaar has up on Git these days is released, official support for Windows and thus better GUIs all around for all platforms. Git is still technically a pre-release for Windows. Bazaar is also purportedly better for binary files than Git, and allows downloads from any point in the history (instead of Git requiring that you download the whole repository history).

    2. Re:What's bzr? by Sponge+Bath · · Score: 5, Funny

      How bizarre.

      The cathedral and the bizarre?

    3. Re:What's bzr? by dominux · · Score: 3, Informative

      it pre-dates git by a year, it was the NiH version of cvs and svn. Bzr was doing useful stuff before anyone realised Git would ever be used for anything other than the Linux kernel source tree. That isn't to say that NiH isn't sometimes a good thing, and that Canonical do daft things from time to time, but bzr wasn't a NiH reaction to Git.

    4. Re:What's bzr? by DrXym · · Score: 3, Informative
      Git seems to be perpetually in preview on Windows but in practice it works relatively well. There are quite a few front ends for it if you hate the command line.

      The biggest issues I have with it are:

      • Line ending conversion is a massive pain in the arse. Windows is CRLF, Linux is LF. Msysgit asks during installation what line ending conversion policy to use. If you get it wrong, you'll see spurious issues with files marked as modified when no difference is visible. The best advice I can give is set core.autocrlf to false when you install msysgit so that line endings are left alone. You can do stuff with a file called .gitattributes to turn off line ending conversion in the repo itself but JGit (the Java pure impl of Git in Eclipse) doesn't actually bother to honour the settings in that file.
      • Performance is a bit poor. You won't notice in small repos but when the repo is 10,000+ files, simple things like "git status" can sit there for minutes. MSYS has an inefficient lstat and performance becomes noticeably in Git as a consequence. An SSD helps a lot, but that's no consolation for devs who can't ask for one.
      • 260 char MAX_PATH imposes restrictions on path length that the fs itself could cope with.

      Nothing is a deal breaker. I think Git on Windows works as well as most other source control systems when its up and going and comes with its own advantages that compel its use for software development. I wouldn't use it for document management though - something like Subversion would be better for that.

    5. Re:What's bzr? by Lemming+Mark · · Score: 3, Informative

      I thought there was a fairly complex history here, since the current bzr was (I thought) bzr-ng originally, an alternative to some original Bazaar tool. And I thought that *that* came from GNU Arch, which (speaking loosely) I gathered wasn't well understood or enjoyable to use. I don't know how much of the current behaviour dates back that far, though, so there may not be too much in common now!

    6. Re:What's bzr? by Jeremiah+Cornelius · · Score: 2

      That's a pretty antipodian reference... :-)

      --
      "Flyin' in just a sweet place,
      Never been known to fail..."
    7. Re:What's bzr? by Anonymous Coward · · Score: 2, Informative

      260 characters is a Windows limitation ("C://" + 256). To get longer paths you need to switch to the Unicode-based API, and change the format of path strings. See http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx

    8. Re: What's bzr? by doti · · Score: 2

      IIRC he dislikes C++ for kernel development.

      --
      factor 966971: 966971
  3. GNU Savannah supports git by byolinux · · Score: 4, Informative

    No need to move to a proprietary hosting service like Github.

    I wrote about this previously: http://www.fsf.org/blogs/community/savannah

    1. Re:GNU Savannah supports git by Desler · · Score: 2

      Because the list was not meant to be exhaustive? Because when the article was written in August 2008, Github was only a couple of months old at the time and had far less users than the other services mentioned?

  4. Git... by Anonymous Coward · · Score: 5, Informative

    He wants to move emacs to git and not to Github. Journalists...

    1. Re:Git... by Anonymous Coward · · Score: 3, Informative

      "hypnosec" is not a journalist. It's someone who's spamming his regurgitation blog posts to drive ad impressions.

    2. Re:Git... by Desler · · Score: 3, Informative

      Ravi Mandalia is "hypnosec".

    3. Re:Git... by Desler · · Score: 5, Informative

      To add, Ravi Mandali's first version of his spam site was called "Hypno Security" which just basically regurgitated a couple of paragraphs of other people's news as "articles" and started spamming it here.

      http://www.freelancer.com/u/hypnosec.html

    4. Re:Git... by Desler · · Score: 3, Funny

      No, actually worse. His grammar and factual accuracy makes the Slashdot editors look top notch.

  5. git, not GitHub by Anonymous Coward · · Score: 5, Informative

    The original source (ESR himself) never mentioned GitHub. Just git. Can people stop conflating the two please?

  6. Surprised by DaveAtFraud · · Score: 4, Funny

    I'm surprised that emacs didn't already have a version control system built into. It has everything else.

    Cheers,
    Dave

    --
    They that can give up essential liberty to obtain a little temporary safety deserve neither safety nor liberty.
    Ben
    1. Re:Surprised by Anonymous Coward · · Score: 5, Funny

      It has everything but still lacks decent editor

    2. Re:Surprised by ebno-10db · · Score: 4, Funny

      You will spend eternity in a circle of hell where you're forced to use Notepad.

    3. Re:Surprised by UnknowingFool · · Score: 2

      It does: C-x M-c M-git

      --
      Well, there's spam egg sausage and spam, that's not got much spam in it.
  7. Insufficient Resources by Anonymous Coward · · Score: 2, Insightful

    Github doesn't have the resources to host something that bloated.

  8. What about Mercurial? by ebno-10db · · Score: 5, Insightful

    Since VC wars are almost as much fun as language wars, and I've already donned my Nomex underwear, why not Mercurial? It isn't as popular as git, but it's not going to die either (e.g. Python project uses Hg). It seems that most people or organizations that have actually sat down and evaluated Hg vs. git have chosen Hg. Examples include Google's online repository and Fog Creek's Kiln. Both now also support git, but that's because of demand by users. Of course user demand is, at least from a marketing PoV, important, but why the user demand for git over Hg? Both have technical pros and cons (and fortunately for both the dev teams compete with each other), but Hg has always had a much better command line user interface, better GUI integration, and was well designed from the ground up to be portable, as opposed to a pile of shell scripts and C programs to run on Linux. Arguably git's use on the Linux kernel is a factor, but why? For all its visibility and importance, the Linux kernel is but one FOSS project, and the vast majority of FOSS devs don't work on it.

    Now for the statement that some will see as flamebait :-) but which is a sincere observation. I think the difference is the fanboi factor; people who think that git is the choice because it's from Linus, the ultimate cool kid. No, I don't think everyone who uses git does so because they're a fanboi. I suspect the main reason is going with that flow, but it's the fanbois who originally pushed that flow so hard. As your mother used to say, if all your friends decided to jump off a cliff, would you jump too? Vociferous debate welcome.

    Sincerely,
    Don Quixote

    1. Re:What about Mercurial? by Waffle+Iron · · Score: 2

      Of course user demand is, at least from a marketing PoV, important, but why the user demand for git over Hg? Both have technical pros and cons (and fortunately for both the dev teams compete with each other), but Hg has always had a much better command line user interface, better GUI integration, and was well designed from the ground up to be portable, as opposed to a pile of shell scripts and C programs to run on Linux. Arguably git's use on the Linux kernel is a factor, but why?

      The network effect explains it. Git probably got an early boost of popularity because of who its author was. This initial momentum was enough to snowball into the most popular distributed RCS. Once it is established, learning curves and database lock-in create a barrier to other alternatives, and they apparently aren't currently "better enough" to prompt people to work through those barriers.

      For example, even if Hg has a better CLI than git as you say, I'm sure that just learning and using just the git CLI is easier than filling one's head with both git and Hg knowledge. (In a similar circumstance, I currently have to use both yum and apt. They have similar concepts but different CLIs, and now I have to use a cheat sheet to run almost any command on either one. If I only used one or the other, I could probably keep the common commands straight in my head.)

      I doubt that git is going to get knocked out of prominence until someone invents the next major concept in version control. This has happened before: both when Subversion surpassed CVS in buzz factor, and when git surpassed Subversion.

    2. Re:What about Mercurial? by greg1104 · · Score: 2

      Mercurial is missing a few key features that make it less appropriate for solving some difficult collaboration problems, and some of those turn out to be important to people outside of Linux kernel development too. That's the technical part underneath what you're dismissing as a fanboy phenomenon.

      Allowing octopus merges and making it easy to rewrite/rebase local branches are two such important features. The way those fit together into git's remote tracking branch concept is a particularly useful mental model for widely distributed development. And the way git (but not Mercurial) forces explicit branch naming and sharing gets people thinking in a way that usefully leads toward using these features for collaborative development. Mercurial vs Git; it’s all in the branches covers most of the important area usefully.

      Basically, git includes some weird features that were built specifically for the style of distributed development done by the Linux kernel. But those turn out to be similarly powerful for other widespread collaborative software efforts too. These things aren't really appreciated by people until they've used git seriously for a while, and therefore they don't show up on most of these formal "which DVCS should we switch to" documents done by people still evaluating their options. That link I just referenced goes over how Google completely missed out on that in their comparison. You can't just compare the opinion of new users. The interesting thing to compare is what git is capable of on a project with some number of serious git users involved.

      Once you've gotten used to things like git's remote tracking branches, good rebasing practices for code sharing, and malleable history when in tough spots, it's impossible to take Mercurial seriously for some of those jobs. Eventually Mercurial got some of the rebasing features, but by that point it had already lost quite a bit of the mind share war. They still are struggling with how the branch name model mismatches what some people want.

  9. Can't we settle this like geeks? by fuzzyfuzzyfungus · · Score: 4, Funny

    Why make a contentious choice between bzr and git when we could implement a new, metalevel distributed revision control system that supports revision control across multiple revision control systems, each potentially running on multiple nodes?

    Given sufficient time, I'm sure we can generalize away any petty disagreements!

  10. The usual ESR self-aggrandizement by mvdwege · · Score: 4, Interesting

    Apparently Eric has decided he has been out of the public eye too long, as he posts yet another self-aggrandizing screed on a mailing list.

    Seriously, after the kernel configuration debacle and his hysterical rants on the Fedora list, does anyone take this man seriously anymore? Look at how he represents himself: an expert on source control systems, whose highest achievement is moving troff to a git repo. It's kconfig all over again.

    --
    "I know I will be modded down for this": where's the option '-1, Asking for it'?
  11. The real question is about Emacs by hcs_$reboot · · Score: 4, Interesting

    Actually, is the dying one being Emacs, instead? That would be sad - but I wonder how younger generations do appreciate Emacs which is quite tricky to get used to - while so convenient and still unequaled in 2014 when it comes to some features (hyper customization thanks to (e)Lisp, M-x features with completion, intra-shell/processes, apropos, ^x-( ), languages modes ...). It seems the major IDE or text editors did not even try to reproduce the main features of Emacs - do they ignore the Emacs logic because they have no knowledge of it, or do they simply feel those features are obsolete? For once, nobody reinvents the wheel, which is going to die eventually. Sad, really.

    --
    Slashdot, fix the reply notifications... You won't get away with it...
    1. Re:The real question is about Emacs by Greyfox · · Score: 2

      People don't use a lot of the old tools because they're not aware of the old tools. You never see anyone use Lex and Yacc, for example. Slightly more people seem to know about gdb and efence, but only slightly. I've been talking to a relative as he's going through a CS program and most of his work has been either Java/Eclipse or C++ on a Microsoft Visual C++ platform, with not even the cursory look at the UNIX tools that were common back in the '80s.

      --

      I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    2. Re:The real question is about Emacs by ebno-10db · · Score: 2, Insightful

      Emacs ... byzantine key combos

      What are you talking about? It's not Emacs' fault that some later programs decided to break compatibility.

    3. Re:The real question is about Emacs by Cid+Highwind · · Score: 2

      It is absolutely Emacs' fault that that the default keybindings are still set up for MIT Lisp machines (Super and Meta? In 2014? Really??).

      It is also emblematic of the problems within Emacs' user community that they can say with apparent seriousness that the problem is every keyboard and OS since nineteen-seventy-fscking-five "breaking compatibility" with Emacs, instead of their own failure to adapt to a changing environment.

      --
      0 1 - just my two bits
  12. Re:Pretty sure... by mellon · · Score: 3, Informative

    A heretic uses XEmacs. An apostate doesn't take the time to install Emacs where it is not available, instead using vi. A blasphemer suggests that emacs and vi are essentially interchangeable, denying emacs' uniqueness and primacy. All three prefer emacs; only pagans and barbarians prefer something else.

  13. What prospects of Emacs left to be damaged? by Anonymous Coward · · Score: 4, Insightful

    Is there still any prospect at all? I left 5 years ago because they stopped improving anything for a decade.

    A decade ago it was comparably decent IDE for Java and C++, today it's nothing thanks to incomplete project management UI, incomplete file tab support, and over-reliance on ctags which can't really understand syntax and parse things properly, and their inability to work on on-the-fly static code-analysis, which requires basic threading support that (still) isn't done.

    the same could be said for Vim as well. While both remain very efficient text editors, they no longer matter because it's far more important to study and write correct code than to writing code faster, and other IDEs have improved on such parts drastically these years.

  14. Hate to go completely off-topic, here... by Slartibartfast · · Score: 2

    But, while ESR is likely right, my kneejerk response is to say, "No!" Why? Because ESR is such a freaking windbag, who's so damn convinced of his own moral and intellectual superiority. His whole schtick gets really tiresome after a while.

    $.02.

  15. The Emacs userbase is still growing by ciaran_o_riordan · · Score: 4, Interesting

    > I wonder how younger generations do appreciate Emacs

    Someone said that to me in 2002. I was a new Emacs user then, and I'm still using it now.

    Debian's package install stats suggest the Emacs user base is steadily growing:

    http://qa.debian.org/popcon-graph.php?packages=emacsen-common

    And the developer mailing list is very active and high-quality:

    https://lists.gnu.org/archive/html/emacs-devel/

    However, Hip-Hop's future is looking less certain:

    http://www.theonion.com/video/there-are-people-in-world-who-are-concerned-about,32163/

  16. Re:The problem is Emacs, not bzr by hey! · · Score: 2

    Why should it innovate? Emacs is roughly as good at being Emacs as it is likely ever be.

    I became disenchanted with Gnome and KDE, not because they did new things, but because they couldn't do those new things without undermining what I liked about them. As for emacs, the world may have passed it by, but it probably has more users today than when I first learned it in the 1980s. That's healthy enough for an ongoing project. It doesn't have to, say, beat Eclipse at being an IDE, emacs has to meet the needs of its users. The fact that other, somewhat different projects are successful doesn't make Emacs a failure.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  17. The editor wars continue in version control by Boawk · · Score: 2

    Emacs will settle on git, vim has settled on mercurial. Oh, how delicious!

    1. Re:The editor wars continue in version control by munch117 · · Score: 2

      XEmacs uses Mercurial. Therefore we can be sure that GNU Emacs will never, ever, use Mercurial, lest its divine purity is contaminated by contributions from the blasphemers.

  18. Re:Emacs is an OS by munch117 · · Score: 3

    Like many things, Emacs doesn't have version control as much as it interfaces or wraps it. You know, dired wraps /bin/ls (and mv and rm), compile wraps e.g. /usr/bin/make, tramp wraps ftp and grep wraps .. um .. grep. And vc wraps version control:

    ;;; vc.el --- drive a version-control system from within Emacs
    ;; Supported version-control systems presently include CVS, RCS, GNU
    ;; Arch, Subversion, Bzr, Git, Mercurial, Monotone and SCCS (or its
    ;; free replacement, CSSC).

    Emacs is the glue that binds together all the little tools into a more powerful whole. And not just Unix tools, e.g. I wrote a function (3 lines of elisp) that launches Windows Explorer with the current file pre-selected. On a Mac the same key combo launches Finder. You seriously underestimate Emacs by calling it a mere OS...

    By the way, I don't use vc.el myself. Never have. Nor do I use Emacs to read mail. Unlike other editors of more monolithic design, you don't pay for what you don't use.

  19. Two complaints, one non-complaint by tlambert · · Score: 2

    Two complaints, one non-complaint

    Complaint #1: ESR's reasoning, and the only theoretically justifiable one in the entire blog post, is that bzr is slow. All version control systems are slow. The more you keep the modification history around, the more people you have hitting a single repo, the slower they get.

    When Apple moved from CVS to SVN, it was because of two things: The first was Linux-based Apple RAID boxes that Apple was OEM'ing from a third part had some bug where they lost data, and this messed up some of the CVS backing files. With a single backing file, as in SVN, this situation only improved because the switch came around the time the bugs in AppleRAID had already been resolved; otherwise, it would have been the whole repo, not just a couple of files, getting screwed up. The second one was that the CVS repo was slow. This was pixable by sharding it so different projects used repos on different servers. The new SVN server on the other hand, was lightening fast ... until we moved over the entire modification history from the CVS server to the SVN server, and all the CVS users stopped hitting the CVS server, and started hitting the SVN server instead. Then the SVN server was just as slow as the CVS server had been, and we were back to the status quo.

    The lesson you should take from this is that it doesn't matter your version control system is slow, because they *ALL* are, and so it doesn't make a difference what VCS you end up using, as long as the primary maintainer likes it.

    Complaint #2: ESR claims that, because it's in bzr and not git, it's harder to submit patches to EMACS. This is patently false. The older an Open Source project is, the harder it is to submit patches, and you VCS doesn't matter to this, because the difficulty isn't the VCS, it's the politics of change.

    As projects get older and older, there's kingdom building that happens, and it's nigh impossible to get a change in that's going to cross one or more boundaries between kingdoms. The more kingdoms you code changes go into, the more code it changes, the more impossible it is to get those changes in. One of the big deals here is the "I won't approve your patch until you rewrite it the way I would have written it if I'd done it, but since I don't have the time (except to review and complain, of course -- then I have buckets of time), I'm not going to take the patch". This is called "time to get a new king instead of an asshole" effect for short.

    The lesson you should take from this is that it's not the VCS, it's the politics, and yeah, if you switch VCSs, you'll get a window when not everyone is up enough on the new stuff that they can get in your way, if you're working with smart people: they will be. So switching VCSs is typically a means of cutting through red tape that shouldn't be there in the first place, and it never works for long.

    Non-complaint #1: ESR states that bzr is "old and crufty" and that "it's mailing lists are dying and patches are dwindling", and that this is somehow bad.

    It's not bad: that's what happens with mature, purpose-built tools: once the damn things work well enough, unless you have someone pushing change for changes sake to get themselves into the commit log or README file, the changes dry up, and the tool tends not to change. So activity on a mailing list or in a commit log for a mature tool is not a way to value that tool.

    Before anyone jumps on me for this posting please read this: I personally don't use bzr, so I have no skin in this game. I've used over a dozen different VCSs, and with the exception on one that ran on DOS, which I would never use again, they're all pretty much solving the same problem, and you shouldn't really give a damn about what a projects primary maintainer likes to use, as long as the thing does the job.