Package request: Mercurial Diff


#1

I like Git but I like Mercurial more :slight_smile: Anyone else would like to see that one?!


#2

+1

I’m using hg in most projects, so would be great to have mercurial integration


#3

+1
I’m using Mercurial too!


#4

+1
it would be great to have this package !


#5

What about just supporting everything that may be done with Git through Atom, except with Mercurial.

So can we work on a feature list?

  • view a diff

#6

Looking at the source of the Project class ( https://github.com/atom/atom/blob/master/src/project.coffee ) it seems like “getRepo()” is pretty much hard-coded to get the stuff from the Git class, which cannot be extended from a plugin. And, it just so happens that the list view is hard-coded to set the file status CSS class from whatever is returned from “getRepo()” (for example https://github.com/atom/tree-view/blob/master/lib/file.coffee ).

Basically, Mercurial support (or Subversion or any other VCS) would have to make a parallel stack of repo status, with its own class, storage (outside of Project), and hooks in the file tree view. I’m not surprised GitHub doesn’t support any other VCS in their flagship editor, but still VCS should not have been hard-coded that way.


#7

That’s really unfortunate! I work with both Git and Mercurial and until I read that I was going to make Atom my editor of choice…


#8

I’ve looked into doing this before. Unfortunately, I have yet to find a nice wrapper from node-land… Here’s someone’s suggestion from SO saying that the best method to work with Mercurial via node is shelling out to Hg and capturing/parsing the output. Most of my work involves Mercurial, but is Visual Studio projects, so I haven’t taken the time to try to implement this.

The following answer is someone saying they’ve implemented that very idea.


#9

Is there an issue to follow on refactoring that code to make it more pluggable? If not, maybe file one?


#10

OK, I opened this ticket: https://github.com/atom/atom/issues/4138 . Let’s see what happens.

Nothing prevents me from patching it all to add a plugin API for that, but I think some discussion involving the core devs is warranted before such an external API is added.


#11

We created a Mercurial package as part of Nuclide: https://atom.io/packages/nuclide-hg-repository.


#12

I however completely failed to get it to work on two Windows (8.1 and 7) machines.

And it seems to try to replace the file browser on the left, which led to me being unable to open all directories - it just kept loading the files list forever.


#13

@BlaM Unfortunately, it does not support Windows right now. This is mentioned under System Requirements on https://atom.io/packages/nuclide-hg-repository. This is currently blocked by Watchman adding support for Windows: https://github.com/facebook/watchman/issues/19.


#14

Thanks for creating & open-sourcing this :smile:

Looks like Windows support just got merged into the project (if i’m reading that PR description correctly). If i have time, i’ll try it out and see if it works on my Windows box.


#15

Can someone confirm that Nuclide is actually working with Windows now? The last time I tried (definitely after August) it killed my Atom, so I’d like to know before I try again :wink:


#16

I’ve just started the development of atom-hg plugin.
It already works well, but need some testing and bug hunting.
If you’re interested you can install it through Atom’s package manager and contribute with development in https://github.com/victor-torres/atom-hg.