0

数か月前にデフォルトのブランチでプロジェクト設定フォルダーをバージョン管理し、その後、デフォルトから離れた多くのブランチを作成しました。ブランチを切り替えるときに多くの問題が発生するため、プロジェクト設定フォルダーのバージョンを管理しないことにしました。

そのhg forgetため、このプロジェクト設定フォルダーを作成しました。これにより、ファイルをローカル マシンに保持できますが、ファイルは削除されます。ただし、このフォルダーがまだバージョン管理されている古いブランチの 1 つからデフォルトのブランチに切り替えると、実際にはローカル マシンからファイルが削除されます。これは問題です。

どうすればそれを防ぐことができますか?

フォルダも.hgignoreデフォルトで入っています。

4

2 に答える 2

2

それは不可能です。

ただし、一般的な方法はconfig.ini.dist、リポジトリに保持し、ソース コードをチェックアウトした直後にビルド システムによって環境固有の構成をビルドすることです。

于 2012-08-20T23:47:37.677 に答える
1

これに対処する標準的な方法は、テンプレート構成ファイルをバージョン管理し、実際の構成ファイルを無視することです。実際の構成ファイルにはテンプレートファイルを含めることができます。または、テンプレートファイルがときどきコピーされます。

問題の根本的な理由は、次のことを実行していることです。

$ hg forget config.ini

実行とまったく同じです:

$ hg remove config.ini
$ hg cat config.ini > config.ini

忘却コマンドはファイルを作業ディレクトリに残しますが、コミットするのはファイルの削除です。これは、その後、Mercurialが「ファイルが忘れられた」と「ファイルが削除された」を区別できないことを意味します。削除のみがコミットされるため、2つのコマンドはまったく同じように見えます。

于 2012-08-21T07:27:51.730 に答える