Bug 2847 - hg fetch from a closed branch: abort: 00changelog.i@None: no node!
Summary: hg fetch from a closed branch: abort: 00changelog.i@None: no node!
Status: RESOLVED FIXED
Alias: None
Product: Mercurial
Classification: Unclassified
Component: Mercurial (show other bugs)
Version: unspecified
Hardware: All All
: normal bug
Assignee: Bugzilla
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-06-10 11:37 UTC by gbranchaud
Modified: 2012-05-13 05:06 UTC (History)
3 users (show)

See Also:
Python Version: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description gbranchaud 2011-06-10 11:37 UTC
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!
Comment 1 HG Bot 2011-12-30 18:00 UTC
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)
Comment 2 gbranchaud 2012-04-28 10:49 UTC
I can confirm this is fixed in hg v2.12.
Thanks for the fix!
Comment 3 Bugzilla 2012-05-12 09:20 UTC

--- 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