Short description: I executed "hg fetch" on a closed branch. The fetch command gave me the new changesets (that were made in the default branch) but aborted with the "abort: 00changelog.i@None: no node!" message. Read on for more info. Steps to reproduce: 0. Enable the fetch extension. 1. Create a new repository (A). 2. Add something in the default branch. 3. Commit. 4. Create a branch. 5. Commit. 6. Close the branch. 7. Commit. 8. Clone the repository in another location (B). 9. Update (B) to latest revision in default. 10. Clone the repository in another location (C). 11. Update (C) to latest revision of the now-closed branch. 12. Change a file in (B). 13. Commit your change in (B). 14. Push from (B) to (A). 15. In (C), execute hg fetch. Expected results: 16. The new changesets from (A) are fetched in your repository, no errors. Actual results: 16. The new changesets from (A) are fetched in your repository, with the following error: "abort: 00changelog.i@None: no node!" More information: The steps to reproduce may not be exact. I got this behavior while fetching from a remote repository and I tried to synthetize the steps I took to get the bug. Maybe something is missing. I am running under Windows XP SP3. TortoiseHG 2.0.5 is installed. Mercurial 1.8.4 is installed (came in the thg bundle) I am using the command-line hg (not thg). churn, fetch, mercurial_keyring and progress extensions are enabled. I was able to reproduce the issue with a traceback. Here is the output (slightly censored to remove user names, company names & fingerprints): >hg fetch --debug --traceback using https://hg.company.com/hg/hgweb.cgi/Sset/ sending between command using auth.hgcompany .* for authentication hg.company.com certificate matched fingerprint 11:11:11:11:11:11:11:11:11:11 keyring URL: https://hg.company.com/hg/ Username found in .hg/hgrc: myLoginName Keyring password found. Url: https://hg.company.com/hg/hgweb.cgi/Sset/, user: myLoginName, passwd: ************** using auth.hgcompany .* for authentication hg.company.com certificate matched fingerprint 11:11:11:11:11:11:11:11:11:11 pulling from https://hg.company.com/hg/hgweb.cgi/Sset/ sending heads command using auth.hgcompany .* for authentication keyring URL: https://hg.company.com/hg/ Cached auth data found. Url: https://hg.company.com/hg/hgweb.cgi/Sset/, user: myLoginName, passwd: ************** using auth.hgcompany .* for authentication hg.company.com certificate matched fingerprint 11:11:11:11:11:11:11:11:11:11 searching for changes sending branches command using auth.hgcompany .* for authentication keyring URL: https://hg.company.com/hg/ Cached auth data found. Url: https://hg.company.com/hg/hgweb.cgi/Sset/, user: myLoginName, passwd: ************** using auth.hgcompany .* for authentication hg.company.com certificate matched fingerprint 11:11:11:11:11:11:11:11:11:11 examining 5a778da86809:6f6865f0ad7d found incomplete branch 5a778da86809:6f6865f0ad7d searching: 1 queries sending between command using auth.hgcompany .* for authentication keyring URL: https://hg.company.com/hg/ Cached auth data found. Url: https://hg.company.com/hg/hgweb.cgi/Sset/, user: myLoginName, passwd: ************** using auth.hgcompany .* for authentication hg.company.com certificate matched fingerprint 11:11:11:11:11:11:11:11:11:11 narrowing 1:3 47dcc23e4fa5 narrowing 2:3 7891f6ece81b found new branch changeset 47dcc23e4fa5 found new changesets starting at 47dcc23e4fa5 1 total queries sending capabilities command using auth.hgcompany .* for authentication keyring URL: https://hg.company.com/hg/ Cached auth data found. Url: https://hg.company.com/hg/hgweb.cgi/Sset/, user: myLoginName, passwd: ************** using auth.hgcompany .* for authentication hg.company.com certificate matched fingerprint 11:11:11:11:11:11:11:11:11:11 capabilities: changegroupsubset stream lookup pushkey unbundle=HG10GZ,HG10BZ,HG10UN branchmap sending changegroupsubset command using auth.hgcompany .* for authentication keyring URL: https://hg.company.com/hg/ Cached auth data found. Url: https://hg.company.com/hg/hgweb.cgi/Sset/, user: myLoginName, passwd: ************** using auth.hgcompany .* for authentication hg.company.com certificate matched fingerprint 11:11:11:11:11:11:11:11:11:11 adding changesets changesets: 1 chunks add changeset 47dcc23e4fa5 changesets: 2 chunks add changeset 5a778da86809 adding manifests manifests: 1/2 chunks (50.00%) manifests: 2/2 chunks (100.00%) adding file changes adding TheFileThatChanged.bat revisions files: 1/1 chunks (100.00%) added 2 changesets with 2 changes to 1 files updating the branch cache checking for updated bookmarks sending listkeys command using auth.hgcompany .* for authentication hg.company.com certificate matched fingerprint 11:11:11:11:11:11:11:11:11:11 keyring URL: https://hg.company.com/hg/ Cached auth data found. Url: https://hg.company.com/hg/hgweb.cgi/Sset/, user: myLoginName, passwd: ************** using auth.hgcompany .* for authentication hg.company.com certificate matched fingerprint 11:11:11:11:11:11:11:11:11:11 Traceback (most recent call last): File "mercurial\dispatch.pyo", line 58, in _runcatch File "mercurial\dispatch.pyo", line 601, in _dispatch File "mercurial\dispatch.pyo", line 406, in runcommand File "mercurial\dispatch.pyo", line 655, in _runcommand File "mercurial\dispatch.pyo", line 609, in checkargs File "mercurial\dispatch.pyo", line 598, in <lambda> File "mercurial\util.pyo", line 433, in check File "hgext\fetch.pyo", line 134, in fetch File "mercurial\revlog.pyo", line 309, in rev LookupError: 00changelog.i@None: no node abort: 00changelog.i@None: no node!
Fixed by http://selenic.com/repo/hg/rev/6b84cdcb05b9 Matt Mackall <mpm@selenic.com> fetch: fix unneeded commit when no merge attempted (issue2847) (please test the fix)
I can confirm this is fixed in hg v2.12. Thanks for the fix!
--- Bug imported by bugzilla@serpentine.com 2012-05-12 09:20 EDT --- This bug was previously known as _bug_ 2847 at http://mercurial.selenic.com/bts/issue2847