Would like to create some defaults for my .hgignore files in TortoiseHG/Mercurial
Asked Answered
E

5

9

I'd like to make it so that every time I create a new repository, certain filters automatically get added to my .hgignore files by default.

For example, for C# projects, I would like these to be added:

glob:bin/*
glob:obj/*

Is this possible? How?

If it can't be automated, is it at least safe to copy the .hgignore file from one repository to another?

Edlin answered 23/11, 2009 at 20:7 Comment(1)
Please see this page if you haven't already: selenic.com/mercurial/hgignore.5.htmlHatching
L
9

I use ~/.hgignore and just cp that into my repo.

In my ~/.hgrc:

[ui]
ignore.other = ~/.hgignore

I just put the really obvious stuff in that one. And copy it for project specific stuff.

I don't think its quite what you're asking for as there is no automation, but it does the trick.

Windows users, see Ry4an's comment below.

Lely answered 23/11, 2009 at 20:22 Comment(3)
I'm not familiar enough with the command line language yet to really get what you're saying. I'll have to read up, but meanwhile, is there any way to do what you're saying with TortoiseHG?Edlin
You can edit the global config file in tortoisehg too. Settings -> global -> edit file.Barb
Dan, that's got nothing to do with the command line. Just create a file in your home folder named ,hgrc or optionally if you're on windows (I'm guessing you are) named mercurial.ini and put the two lines from his answer in there. Then create a file in your home folder named .hgignore and put in them your two lines from the question. TortoiseHG is a great app, but Mercurial still uses text files for configuration, and you need to create them with a text editor sometimes.Shipworm
L
4

Just to clarify, it is safe to copy a .hgignore from one repos to another, it is just a plain old simple text file.

Lovegrass answered 23/11, 2009 at 21:53 Comment(0)
C
3

You could use a post-init hook to do it for you:

[hooks]
post-init.ignore-bin = echo 'glob:bin/*' >> .hgignore
post-init.ignore-obj = echo 'glob:obj/*' >> .hgignore

This form only works with the mkdir sample && cd sample && hg init style of creating a repo If you use the faster hg init sample form it will dump the new .hgignore file into the current directory.

You could write a more intelligent hook script if you prefer using hg init name.

Crux answered 23/11, 2009 at 21:15 Comment(1)
Not a bad idea. I like it for advanced users, but I don't think new users would be able to "get it".Lely
B
1

hg add .hgignore ?

Perhaps you could clone from a repo that only had that file checked in. :)

Otherwise you'd have to write a small extension that did this in hg init somehow

Barb answered 23/11, 2009 at 20:18 Comment(4)
What about copying an .hgignore file from one repository folder to another (just using the file system)? It seems to just be a simple text file. Any reason that wouldn't work properly?Edlin
Thanks, I did try it...just wanted to make sure there were no side effects I wasn't aware of.Edlin
nope. I thought you wanted something more clever. However, xyld's idea is pretty good too.Barb
DanThMan: Mercurial uses only simple and transparent text files for its user-configurable data. That holds for .hg/hgrc, .hgignore, .hgtags.Hatching
C
0

In the TortoiseHg settings under the tab TortoiseHg users can specify the path of a Repo Skeleton. You can put your predefined .hgignore there, and it will be automatically copied during hg init.

See also: https://foss.heptapod.net/mercurial/tortoisehg/thg/-/issues/3569

Cavallaro answered 8/9, 2021 at 6:58 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.