We use tortoise hg with Kiln. In my vs 2010 c# project there are some files that are part of the repository but I would like tortoise hg to ignore them when I make a commit.
When you do a TortoiseHG commit, there is a list of files with checkboxes by them. Deselect the files you do not want comitted.
Or, on the command line, do a commit of the form hg commit --exclude "pattern"
, where pattern is defined in the hg man page.
The answer by Christian is the right one, but I want to mention that TortoiseHg supports what you want with their Auto Exclude List.
One problem with an exclude list is that it cannot work with merges: you must commit all files when you merge and so you'll have to do a little dance with shelve, merge, commit, and unshelve.
I always use a combination of .hgignore and BeforeBuild
(in the .csproj file) for things like this.
In one of my pet projects, I have the following setup:
App.config
contains my real hardcoded user id and password for testing.
App.config.example
is identical, but with fake data like "dummy_user" and "dummy_pw".
App.config
is not part of the repository, and it's ignored (in .hgignore
).
App.config.example
is part of the repository.
Then, I have the following in the BeforeBuild
target in the .csproj file of my solution:
<Target Name="BeforeBuild">
<Copy
Condition="!Exists('App.config')"
SourceFiles="App.config.example"
DestinationFiles="App.config"/>
</Target>
All this together has the following effect:
.example
file (and then he can just put his real login data into the newly created App.config
file).App.config
with real hardcoded user data already exists, it won't be overwritten when building because the BeforeBuild event will only happen if App.config
does not already existYou could always use hg forget.