Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

TortoiseHg can't commit--"The system cannot find the file specified"

I just picked up TortoiseHg to use for distributed source control on Windows and installed it on my C drive. Then I created a repository (located in D:\projects).

When I try to commit the changes, it gives me the error

"abort: None: The system cannot find the file specified"

in a new window titled "Commit". This causes the commit to abort. It doesn't specify any file, and when I run hg --traceback commit -m 'Message' it gives this as output:

Traceback (most recent call last):
  File "mercurial\dispatch.pyo", line 54, in _runcatch
  File "mercurial\dispatch.pyo", line 483, in _dispatch
  File "mercurial\dispatch.pyo", line 351, in runcommand
  File "mercurial\dispatch.pyo", line 534, in _runcommand
  File "mercurial\dispatch.pyo", line 488, in checkargs
  File "mercurial\dispatch.pyo", line 481, in <lambda>
  File "mercurial\util.pyo", line 420, in check
  File "mercurial\commands.pyo", line 762, in commit
  File "mercurial\cmdutil.pyo", line 1202, in commit
  File "mercurial\commands.pyo", line 757, in commitfunc
  File "mercurial\localrepo.pyo", line 816, in commit
  File "mercurial\localrepo.pyo", line 1053, in status
  File "mercurial\dirstate.pyo", line 629, in status
  File "mercurial\dirstate.pyo", line 540, in walk
  File "mercurial\localrepo.pyo", line 796, in fail
Abort: Adding: The system cannot find the file specified
abort: Adding: The system cannot find the file specified

I don't know what else I can give as debug info, not having any experience with the program.

I have configured TortoiseHg with both a username globally and for the repository. Also, kdiff3 is specified as both the three-way merge tool and the visual diff tool. I have not knowingly changed any other settings.

Thanks for any help, and please ask for more information, I just don't know what to give in this situation.

like image 712
31eee384 Avatar asked Jul 03 '10 17:07

31eee384


2 Answers

I'm getting acquainted with Hg and trying Tortoise-Hg out and I'm running to the same exact issue as the OP. I cloned a repository from one of the open source projects and made some changes to the source. However when I attempt to commit, I get the follow message from the commit dialog window:

abort: None: The system cannot find the file specified

Dropping down to commandline and using hg commit -m "message" works. I'm using this under Windows 7 64-bit and have tried two versions TortoiseHg 1.1.5 and the latest 1.1.6.1(64-bit version) as of this post.

Any idea what the problem is? As you can imagine, this is a major issue since I can't even do one of the most basic operations for a version control system w/o needing to drop down to CLI. What is wrong with this?

Thanks

Update: I have SOLVED the issue! After some collaboration on the TortoiseHg mailing-list, I've identified the root cause of this error. This error is happening because whenever tortoisehg tries to commit it's tacking on an extra 'none' parameter to the end of that commit command line.

This can happen if you've set your repository settings->Commit->Auto Commit List to 'None'. The fix is simple -- make sure that Auto Commit List and Auto Exclude List are both set to < unspecified >. Check your global settings as well and make sure these 2 fields are set the same way.

Additionally, to see if your Auto Commit List and Auto Exclude List are set properly type

hg showconfig --debug tortoisehg

If it contains a line something to this effect:

mercurial.ini:15: tortoisehg.autoinc=None

then tortoisehg isn't configured properly.

I hope this solves the issue for the OP and others that are running into this problem and pulling their hair out trying to fix it.

like image 189
greatwolf Avatar answered Oct 14 '22 04:10

greatwolf


Try this:

  1. Remove TortoiseHG
  2. Restart the system (basically to make sure there are no processes from tortoise, such as file monitoring, that can put locks on files)
  3. Intall command line hg
  4. do the regular hg commit -m "yourmessage"

If this works, it's more likely than not that the monitoring tool from TortoiseHg is holding a lock on some file (the system tray applet).

It also could be the case that someone else is doing than (not TortoiseHg), e.g. editor? diff tool? etc?

Finally, another reason why this can happen is: someone fooled around with the repo files inside .hg directory... It doesn't seem to be the case though

like image 43
Nick Avatar answered Oct 14 '22 05:10

Nick