how to ignore files in kiln/mercurial using tortoise hg “that are part of the repository”

后端 未结 4 1181
南方客
南方客 2020-11-27 23:46

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.

相关标签:
4条回答
  • 2020-11-27 23:59

    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.

    0 讨论(0)
  • 2020-11-28 00:03

    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.

    0 讨论(0)
  • 2020-11-28 00:16

    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:

    • the config file with the real data can never be accidentally committed to the repository, because it's ignored
    • the repository only contains the config file with the example data
    • if someone else clones the repository to his machine, he won't have the "real" config file...but if it's missing, it will be automatically created before the first build by Visual Studio / MSBuild by simply copying the .example file (and then he can just put his real login data into the newly created App.config file).
    • if an 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 exist
    0 讨论(0)
  • 2020-11-28 00:19

    You could always use hg forget.

    0 讨论(0)
提交回复
热议问题