schacon / hg-git

mercurial to git bridge, pushed to directly from the hg-git plugin in Hg
GNU General Public License v2.0
620 stars 71 forks source link

".hgtags ... refers to unknown node" when cloning a sympy repo #38

Closed certik closed 14 years ago

certik commented 14 years ago

Hi,

trying the command below results in lots of errors. Any idea why?

$ hg clone git://github.com/certik/sympy.git fetching from : origin importing Hg objects into Git Counting objects: 21046, done. Compressing objects: 100% (5415/5415), done. Total 21046 (delta 16038), reused 20306 (delta 15433) importing Git objects into Hg at: 0/2671 at: 100/2671 at: 200/2671 at: 300/2671 at: 400/2671 at: 500/2671 at: 600/2671 at: 700/2671 at: 800/2671 at: 900/2671 at: 1000/2671 at: 1100/2671 at: 1200/2671 at: 1300/2671 at: 1400/2671 at: 1500/2671 at: 1600/2671 at: 1700/2671 at: 1800/2671 at: 1900/2671 at: 2000/2671 at: 2100/2671 at: 2200/2671 at: 2300/2671 at: 2400/2671 at: 2500/2671 at: 2600/2671 .hgtags@9abf0b1991d3, line 1: tag 'sympy-0.5.0' refers to unknown node .hgtags@9abf0b1991d3, line 2: tag 'sympy-0.5.4' refers to unknown node .hgtags@9abf0b1991d3, line 3: tag 'sympy-0.5.3' refers to unknown node .hgtags@9abf0b1991d3, line 4: tag 'sympy-0.5.5' refers to unknown node .hgtags@9abf0b1991d3, line 5: tag 'sympy-0.5.6' refers to unknown node .hgtags@9abf0b1991d3, line 6: tag 'sympy-0.5.7' refers to unknown node .hgtags@9abf0b1991d3, line 7: tag 'sympy-0.5.8' refers to unknown node .hgtags@9abf0b1991d3, line 8: tag 'sympy-0.5.9' refers to unknown node .hgtags@9abf0b1991d3, line 9: tag 'sympy-0.5.10' refers to unknown node .hgtags@9abf0b1991d3, line 10: tag 'sympy-0.5.11' refers to unknown node .hgtags@9abf0b1991d3, line 11: tag 'sympy-0.5.12' refers to unknown node .hgtags@9abf0b1991d3, line 12: tag 'sympy-0.5.13' refers to unknown node .hgtags@9abf0b1991d3, line 13: tag 'sympy-0.5.14' refers to unknown node .hgtags@9abf0b1991d3, line 14: tag 'sympy-0.5.15' refers to unknown node .hgtags@9abf0b1991d3, line 15: tag 'sympy-0.6.0' refers to unknown node .hgtags@9abf0b1991d3, line 16: tag 'sympy-0.6.1' refers to unknown node .hgtags@9abf0b1991d3, line 17: tag 'sympy-0.6.2' refers to unknown node .hgtags@9abf0b1991d3, line 18: tag 'sympy-0.6.3.beta1' refers to unknown node .hgtags@9abf0b1991d3, line 19: tag 'sympy-0.6.3.beta2' refers to unknown node .hgtags@9abf0b1991d3, line 20: tag 'sympy-0.6.3' refers to unknown node .hgtags@008526bec152, line 1: tag 'sympy-0.5.0' refers to unknown node .hgtags@008526bec152, line 2: tag 'sympy-0.5.4' refers to unknown node .hgtags@008526bec152, line 3: tag 'sympy-0.5.3' refers to unknown node .hgtags@008526bec152, line 4: tag 'sympy-0.5.5' refers to unknown node .hgtags@008526bec152, line 5: tag 'sympy-0.5.6' refers to unknown node .hgtags@008526bec152, line 6: tag 'sympy-0.5.7' refers to unknown node .hgtags@008526bec152, line 7: tag 'sympy-0.5.8' refers to unknown node .hgtags@008526bec152, line 8: tag 'sympy-0.5.9' refers to unknown node .hgtags@008526bec152, line 9: tag 'sympy-0.5.10' refers to unknown node .hgtags@008526bec152, line 10: tag 'sympy-0.5.11' refers to unknown node .hgtags@008526bec152, line 11: tag 'sympy-0.5.12' refers to unknown node .hgtags@008526bec152, line 12: tag 'sympy-0.5.13' refers to unknown node .hgtags@008526bec152, line 13: tag 'sympy-0.5.14' refers to unknown node .hgtags@008526bec152, line 14: tag 'sympy-0.5.15' refers to unknown node .hgtags@008526bec152, line 15: tag 'sympy-0.6.0' refers to unknown node .hgtags@008526bec152, line 16: tag 'sympy-0.6.1' refers to unknown node .hgtags@008526bec152, line 17: tag 'sympy-0.6.2' refers to unknown node 537 files updated, 0 files merged, 0 files removed, 0 files unresolved

abderrahim commented 14 years ago

I bet sympy's repository still contains .hgtags from the old days (when it was still using mercurial). A fix for this (note that these are warnings and not errors) is to add a .hgtag file containing the tags with new changesets ids.

certik commented 14 years ago

That's what I thought too at first, but there is no .hgtags in our repository, only .hgignore. So the bug is somewhere else.

abderrahim commented 14 years ago

what's this? A file doesn't exist in the latest revision doesn't mean it doesn't exist in the repository ;-)

certik commented 14 years ago

Interesting. So mercurial breaks if there is a .hgtags in the history? So how can we fix it? Is the only fix to rewrite the history?

abderrahim commented 14 years ago

Sorry, what I said isn't totally correct. (should stop posting late at night). There should be a head still containing .hgtags from the old days. Rewriting history isn't the only way to fix it (you can just delete .hgtags from that head, or replace it with good tags)

certik commented 14 years ago

Well, we now use the git repository and it only has one branch and that branch doesn't have .hgtags. Do you know a patch to our git repository, that would fix it?

It really seems to me like a bug in the hg-git tool, but I may be wrong.

abderrahim commented 14 years ago

The git repository on github has four dozens branches :-) Running this on the hg-git clone, should give you the offending revision

for x in `hg heads --template "{rev} "`; do hg man -r $x |grep -q .hgtags && echo rev $x has hgtags; done

you can then use hg id -tr <rev> to get the git branch for the rev

certik commented 14 years ago

Ah, you are right! I forgot it's my own repository and I guess some old branch has the .hgtags. I'll look into it, thanks for the help.