Using IntelliJ 11 Community Edition with Mercurial - mercurial

I am using IntelliJ 11 Community Edition for a project that is in Mercurial (but not at the root of the repository). I integrated the project with Mercurial in the VCS menu, and all the options are now available. However, they don't seem to do anything. The only thing that seemed to do anything is to pull from the server. It doesn't show changed files, commit doesn't do anything. When I deleted a file I got this error message:
hg remove --after src/stats/KolmogorovSmirnovStatistic.java
abort: repository /home/ga1009/PhD/cpp/pmi/java not found!
the root of the repository is /home/ga1009/PhD. How can I get it configured?
I am using Debian Linux is it is relevant.

I raised a ticket on the official site and got a solution that seems to work:
Go to Settings | Version Control and map the repository root to the
Mercurial VCS.

Looks like Mercurial is supported in the community edition:
http://www.jetbrains.com/idea/features/editions_comparison_matrix.html?IC
Sorry, I use Subversion. But when I do, I have to check out the project from Subversion in order to get a working copy. Did you do that with Mercurial? Or are you working with your original files?
I'd do this:
Back up your original source. God forbid you should lose a repository named "PHD".
Check the code into Mercurial. Make sure you can see it in the browser.
Blow away your original source.
Open IntelliJ and check out from Mercurial.
You should be able to see changes added to the change list as you work.

I had to edit the .idea/vcs.xml file to get it working.
The VcsDirectoryMappings needs to read something like:
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="hg4idea" />
</component>

Related

Mercurial support partially not working in Atom-Nuclide

I have installed the latest version of watchman, which can be found here:
/usr/local/bin/watchman
I performed the Install Recommended Packages on Startup and I watched them install after restarting.
This is a fresh new install of Atom and Nuclide with the latest version of everything.
I have a test project with files added to the Mercurial repository. The repository .hg directory sits at the root of the project. When I open a Diff View into a file, Nuclide picks up the previous Mercurial version of that file just fine as I make edits and it shows the comparison between the two. Previous version on the left is shown. So I know that Atom-Nuclide is able to interact with the Mercurial repository.
However, nothing else seems to be working for Mercurial support.
When I select "Toggle Blame" on the same file where Diff View is working, I get this message: "Failed to fetch blame to display. The file is empty or untracked or the repository cannot be reached."
The File Tree Highlighting does not work. No colors on any of the files in any of their mercurial states.
The colored Line Modification Notifications do not show inside of the Atom gutter.
The Added and Removed Lines feature is not showing in the status bar.
These features in Atom-Nuclide are the reason why I am interested in trying out Mercurial instead of Git and are big reasons for trying this IDE in general.
The same problem was reproduced on a different distro. I can't be the only one who bumps into this. No business can safely rely on a development environment where the level of community interest outside of FB cannot support an attempt to claim a Stack Overflow bounty on a question like this. The solution is to wait for better type support and type checking to come to PHP. Numerous RFCs exist to do exactly that and other IDEs will take advantage of this in future versions of PHP.

TortoiseHg 3.6.3 broke mercurial keyring?

I upgraded to Tortoise 3.6.3 yesterday and now I am prompted every time I pull or push a repo. The keyring is set properly, and my user name is in the url.
Any ideas on what may be wrong? Did 3.6.3 break keyring?
Issue 4401 "mercurial_keyring always asks for user/password" from time of 3.6.2 closed as pure extension-specific and contains solution: don't use username in URL anymore
Here is what to put into .hg/hgrc:
[auth]
default.username=myname
default.prefix=http://myrepo
A good way to debug issues like this is to run merciural from the command line with the debug flag, as in:
hg pull --debug
This will clearly indicate if there are problems getting the repo, user name, and password.
UPDATE: A new version of TortoiseHG has been released (3.8.3 at the time of writing) and fixes this issue: upgrading to latest version should be enough.
I had this exact same problem and found the following investigation article to be quite helpful to better understand what't going on (I'm not the author, BTW).
To cut it short, it seems a bug of the mercurial_keyring extension v1.0.1, introduced in TortoiseHG 3.6.2, which also appears to be fixed in v1.1.1.
If you're into Python compiling, it should be possible to upgrade it manually into TortoiseHG by getting it from its official bitbucket repo, compile it and manually place it into TortoiseHG's /lib/library.zip file (backup it beforehand might be wise): if you're not, you have 2 options:
1) clone the bitbucket repo to your HDD and then configure your Mercurial installation to use the new version of that extension module by writing the following in your C:\Users\USERNAME\mercurial.ini file (which was what I did):
[extensions]
mercurial_keyring = /path/to/mercurial_keyring/mercurial_keyring.py
(Notice: you might also have to put the path in your PATH or PYTHONPATH env variable, depending if you already have Python and/or Mercurial installed on your machine).
2) wait for the next TortoiseHG release that will contain the updated version.

Mobaxterm Mercurial Plugin

I'm trying to access a local folder which is tracked under Mercurial through Mobaxterm, but it says bash: hg: command not found. I assume that I am missing a plugin, which is not listed under the official site. Has anyone managed to use Mercurial with Mobaxterm. Could you please point me to the right direction.
I just packaged mercurial (hg) for MobaXterm after seeing your post regarding it today. I only tested it briefly, so I can't guarantee it works perfectly.
See:
http://www.bananahut.net/software/mobaxterm-plugins

m2eclipse on windows with Mercurial does not allow hg to be used on the "Check out Maven Projects from SCM" wizard

I followed the answer from this posting:
How to use Mercurial, Maven and Eclipse together?
But the "Check out Maven Projects from SCM" still does not allow me to use Mercurial SCM.
The only option I get is "svn" in the dropdown, and even if I ignore the drop down and enter in "scm:hg:http://myMercurialRepoURL"
I'm using:
Eclipse 3.6.1
m2eclipse 0.12 from http://m2eclipse.sonatype.org/sites/m2e
"Maven SCM handler for Subclipse" 0.12.0 from m2eclipse extra's site (sorry, I would give the URL, but my new account doesn't have enough rep)
MercurialEclipse 1.8.1 from http://cbes.javaforge.com/update
And I've uninstalled, and reinstall those plugins in that order.
I'm able to use Maven in projects, and use Mercurial separately in Eclipse - it's just this one Wizard that seems to be broken, which leads me to believe that if I try to Materialize an Artifact from a Mercurial repo that it will also fail.
Has anyone had any luck with this Wizard? Perhaps on earlier versions? Is this a new bug?
Thanks
As far my search went, I didn't get to find a suitable connector for mercurial and m2eclipse (in terms of only using IDE). However, I did an experiment wherein I cloned a copy of the source from outside the IDE. (via TortoiseHg specifically)
Afterwards, assuming you have already m2e installed in Eclipse:
Go to File > import > maven > existing maven projects, then select the folder where you've originally pulled/cloned your source code.
I believe by doing so, you'll see the m2e commands in the project's context menu (via run as), and effective use mercurial commands. (via team context menu)
At least for now, this is better not using m2e and mercurial at the same time.
If anyone has a more streamlined approach, I'm also curious. :D

Does mercurial-server support subrepo?

I installed mercurial-server on one of my machines, cloned my project there, it has 3 subrepos, and when I try to clone it back to another location I get an error:
remote: mercurial-server: Cannot
create repo under existing repo
abort: no suitable response from
remote hg!
So I'm starting to think that mercurial-server doesn't handle subrepo.
Any clue?
The new version released in December 2010 does support sub repos.
Their changelog never mentions subrepos.
Nor does their documentation.
So it is quite possible they don"t support that feature yet, but I wouldn't know for sure.
I got an answer from the developers of mercurial-server saying that they don't support it yet.
This post says that disabling the "checkParents" code will enable support for subrepos.
EDIT
I've tried using it recently and it works just fine even without changing any default settings.
I found that you need to set up the locations for any subrepos inside the "mercurial.ini" settings file.
For a subrepo named "mysubrepo", you need to add the line
[subpaths]
mysubrepo = ssh://hg#myserver/subrepolocation