これらのテストファイルは開発ブランチに存在しないため、開発ブランチをチェックアウトすると、作業ディレクトリには存在しません。MercurialやgitなどのDVCSでは、あるリビジョン/ブランチで1つのディレクトリをチェックアウトし、別のリビジョン/ブランチで別のディレクトリをチェックアウトすることはできません。
あなたがリンクした答えは、変更されたファイルとそのファイルを別のブランチに持ち込むためのものであり、あなたが求めているものではありません。
したがって、あなたがそれをやりたい方法(別々のブランチ)は機能しませんが、他の/より良いオプションがたくさんあります
1つの選択肢は、テストをmq(Mercurial Queues)リポジトリによって管理されるパッチにすることです。このリポジトリ自体をバージョン管理できます。次に、開発ブランチのどこにいて、テストを実行したい場合は、次のようにします。
hg qpush # tests show up
... run tests, edit tests ..
hg qrefresh # save the changes you made to the test
hg qpop # tests vanish again
MQは強力ですが、頭を包み込むのが少し難しい場合があります。
もう1つの選択肢は、テストを親リポジトリにし、実際のコードをその親の子リポジトリにすることです。ディスクレイアウトは次のようになります。
parent/
tests/
existingrepo/ # <-- the repo you already have w/o tests
次に、クローンを作成して、テストなしで既存のリポジトリをプッシュできますが、外部リポジトリにはそれへのポインタが含まれ、2つはロックステップでバージョン管理されます。繰り返しますが、ちょっとトリッキーですが、いくつかの素晴らしい結果があります。
3番目のオプションであり、私の好みは、「コミットも整理された状態に保ち、開発ブランチを乱雑にしない」という考え方を克服することです。テストはプライマリコードと同じくらい重要であり、コードでバージョン管理する必要があります。テストは何も乱雑ではなく、コードが何をしているのかを理解するのに役立つ貴重なツールを提供します。hg log --exclude tests/
都合の良いときに、いつでもそれらを除外した履歴を表示するために使用できます。
その思い切った行動を取るには、次のようにします。
hg update development
hg merge tests
そして、あなたは行ってもいいです。