1

it's a quesion about mercurial.

I'm not a unix - guy, but use a mercurial together with MacHG for my development on Mac. Yesterday I had to change my mac, I just copied my project folder with repository on new mac, but now I can't do anything with it in mercurial. I can open project in xcode and everuthing is fine, but if I try to do anything in mercurial via terminal I'm getting this: abort: data/.DS_Store.i@e959df7694ce: no node!

If I try to do anything in MacHG I'm getting Mercurial reported error number 255: skipping unreadable ignore file '/Users/zakhar/.hgignore': No such file or directory abort: data/.DS_Store.i@e959df7694ce: no node!

What can I do? where can I get this .hgignore file? I don't have old mac any more.

Luke Girvin
  • 13,221
  • 9
  • 64
  • 84
Burjua
  • 12,506
  • 27
  • 80
  • 111

2 Answers2

4

The advice you're getting about putting .DS_Store in your .hgignore file was the advice you needed back when you first setup that repo, however it wont help now. You've already added the .DS_Store files in your repo on your old computer and adding a file overrides .hgignore.

Furthermore, it looks like when you copied the stuff from your old computer to the new computer the .hg/data/.DS_Store.i file and probably anything else with .DS_Store in it didn't copy over.

Drop to terminal on the new computer and do a hg verify. If you get notifications about missing files (and it looks like you will) then you need to re-copy the repository over, or better yet clone it over with hg clone.

Martin Geisler
  • 72,968
  • 25
  • 171
  • 229
Ry4an Brase
  • 78,112
  • 7
  • 148
  • 169
  • Ok, thanks, I didn't know about `hg verify`. Indeed I had these files missing, I copied it via network and apparently something went wrong, thanks God I made a backup copy to usb drive, this copy is ok). – Burjua Sep 22 '10 at 11:22
  • Yeah, it was probably your copy tool saying "He probably doesn't want this file it has .DS_Store in the name" not knowing that it was the repository's important history file. Glad it worked out. – Ry4an Brase Sep 22 '10 at 15:03
1

.hgignore file tells Mercurial, what files to ignore.

Just create a .hgignore file at location mentioned and add the following

# use glob syntax.
syntax: glob

*.o
*.so
*.log
*.DS_Store
.DS_Store

See : https://stackoverflow.com/questions/3714820/mercurial-script-plugin-for-ignore-remove-binary-files/3714858#3714858

Also you may want to remove all .DS_Store files in your repo:

find . -name .DS_Store -print0 | xargs -0 hg remove
Community
  • 1
  • 1
pyfunc
  • 65,343
  • 15
  • 148
  • 136
  • Ok, thanks, I created ,hgignore file, but still have error `Mercurial reported error number 255: abort: data/.DS_Store.i@e959df7694ce: no match found!` What shall I do with it? – Burjua Sep 21 '10 at 17:35
  • Yes, I've done it, by the way where do I need to put this file ? I put it to my home (/Users/zakhar/), may be somewhere else? – Burjua Sep 21 '10 at 17:54