ホーム/趣味のいくつかのディレクトリの名前を変更することにしましたPythonパッケージ(doc
からdocs
、test
からtests
、util
to utils
)なぜなら、私はそれについてもっと考えたので、新しい名前がより適切だと思うからです。私の一般的な考え方は、コンテナの内容にちなんで名前が付けられている場合、名前は複数の名詞にする必要があります。
次のhg commit
の準備ができたので、これらのディレクトリ名の変更についてMercurialに通知する方法を考えています。私は一般的にRCSソフトウェアを初めて使用し、Mercurialを使用してから数か月しか経っていません。 hg status
を実行すると、これらのディレクトリ内のすべてのファイルが削除および追加されていることが表示されるため、hg addremove
を実行すると、これらのディレクトリ内のファイルのすべての変更履歴が失われるのではないかと心配しています。 、または少なくとも変更履歴は断片化され、追跡できなくなります。 hg rename
コマンドに出くわしましたが、ドキュメントでは、ディレクトリではなく、個々のファイルでの使用についてのみ説明しています。
Bryan O'Sullivanの「DefinitiveGuide」をさらに読んだ後、おそらくrename
がディレクトリを参照できるようです。
だから、これが私が試してみることにしたことです:
hg rename --after doc docs
hg rename --after test tests
hg rename --after util utils
hg status
hg addremove
これがMercurialのディレクトリの名前を変更するために受け入れられ、推奨される方法であるかどうかを誰かに教えてもらえますか?そうでない場合は、どうすればよいですか?.
すでにディレクトリの名前を変更しているので、これはまったく問題ありません。 (Mercurialに名前を変更させると、手動で手順を節約できます。自分で名前を変更してからMercurialに通知するのではなく、hg rename doc docs
など)。
チェックインするファイルが他にない場合、hg addremove
は不要です。 hg stat
の出力を見ると、「R」(doc/*
、test/*
、util/*
の場合)および「A」(docs/*
などの場合)で始まる行のみが表示されます。
最後に、変更をコミットすることを忘れないでください。
EDIT:言うのを忘れました... hg log --follow
を使用して、名前変更全体の変更を追跡します。
Mercurialにはディレクトリの概念がありません。すべて(ファイルとディレクトリ)をファイルとして扱います。また、私は通常、ファイルやディレクトリの名前を手動で変更することはありません。私はただ使う
hg名前の変更古い名前新しい名前
あなたもそうすることをお勧めします。
Mercurialは名前変更追跡機能を提供します。これは、Mercurialが名前が変更されたファイルの完全な履歴を追跡できることを意味します。これを手動で名前変更した場合、それは不可能です。
ただし、すでに手動で名前を変更しているため、--follow
引数とhg log
を使用して、履歴を通じてファイルの変更を追跡する必要があります。
個人的にはhg rename
を使用するだけで、これが推奨される方法です。
Hgで名前を変更する代わりに--afterを使用する理由の1つは、名前を変更するだけではないリファクタリングツールを使用している場合です。また、参照を修正します。