約 1 年前に Mercurial を使い始めたとき、すべてのプロジェクトを入れるために SandBox という 1 つのリポジトリを作成しましたが、1 年ほど経った今、それはあまり賢明な選択ではないことに気付きました。各プロジェクトに独自のリポジトリを提供し、履歴も保持したいと思います。これを達成する簡単な方法はありますか?
2 に答える
3
さて、次の構造を持つプロジェクトを考えてみましょう ( bitbucket 内):
$ find hgmultiproject
hgmultiproject
hgmultiproject/proj2
hgmultiproject/proj2/mysndfile
hgmultiproject/proj1
hgmultiproject/proj1/myfirstfile
hgmultiproject/proj3
hgmultiproject/proj3/mythirdfile
このプロジェクトには次のログがあります。
revision: 7:6bbc26c1a34d
tag: tip
user: Adam Victor Nazareth Brandizzi <brandizzi@gmail.com>
date: Wed Aug 08 11:49:22 2012 -0300
summary: correcting
revision: 6:32c312e7072e
user: Adam Victor Nazareth Brandizzi <brandizzi@gmail.com>
date: Wed Aug 08 11:48:55 2012 -0300
summary: Adding period
revision: 5:f332e0ecee4d
user: Adam Victor Nazareth Brandizzi <brandizzi@gmail.com>
date: Wed Aug 08 11:48:39 2012 -0300
summary: Moving to correct name
revision: 4:5850a93d80dd
user: Adam Victor Nazareth Brandizzi <brandizzi@gmail.com>
date: Wed Aug 08 11:48:05 2012 -0300
summary: More content on second file
revision: 3:0098ebd2cea5
user: Adam Victor Nazareth Brandizzi <brandizzi@gmail.com>
date: Wed Aug 08 11:47:41 2012 -0300
summary: A third file
revision: 2:096c984a8f2a
user: Adam Victor Nazareth Brandizzi <brandizzi@gmail.com>
date: Wed Aug 08 11:47:09 2012 -0300
summary: More content on 1st file
revision: 1:b9491918efcc
user: Adam Victor Nazareth Brandizzi <brandizzi@gmail.com>
date: Wed Aug 08 11:46:52 2012 -0300
summary: My second file
revision: 0:4e429ac2fee9
user: Adam Victor Nazareth Brandizzi <brandizzi@gmail.com>
date: Wed Aug 08 11:46:23 2012 -0300
summary: My first file
--filemapオプションを指定したConvert 拡張機能を使用して、プロジェクトを抽出できます。
どうやってするの?まず、ファイルマップ ファイルを作成する必要があります。この場合、コンテンツは次のようになります。
rename proj1 .
exclude proj2
exclude proj3
最初の行は、ディレクトリ内のすべてをproj1
新しいリポジトリのルートに移動します。2 行目proj2
は新しいリポジトリから dir を削除し、3 行目はproj3
.
それを使用するには、次のように呼び出します。
$ hg convert --filemap proj1filemap hgmultiproject/ extracted-proj1
次に、新しいレポを入力します。
$ cd extracted-proj1/
作業コピーがありません...
extracted-proj1 $ ls
y しかし、更新する必要があるだけです:
extracted-proj1 $ hg update
1 updated files, 0 merged files, 0 deleted files, 0 nonresolved files
extracted-proj1 $ ls
myfirstfile
そして新しいログは...
extracted-proj1 $ hg log
revision: 2:eb31727c0df8
tag: tip
user: Adam Victor Nazareth Brandizzi <brandizzi@gmail.com>
date: Wed Aug 08 11:48:55 2012 -0300
summary: Adding period
revision: 1:e701f0ad5335
user: Adam Victor Nazareth Brandizzi <brandizzi@gmail.com>
date: Wed Aug 08 11:47:09 2012 -0300
summary: More content on 1st file
revision: 0:c0b6ad18ff22
user: Adam Victor Nazareth Brandizzi <brandizzi@gmail.com>
date: Wed Aug 08 11:46:23 2012 -0300
summary: My first file
リポジトリの各プロジェクトについて、次の手順に従う必要があります。
于 2012-08-08T15:06:16.703 に答える
1
Convert 拡張機能を見てみましょう: https://www.mercurial-scm.org/wiki/ConvertExtension
実際に必要なのは--filemap
: https://www.mercurial-scm.org/wiki/ConvertExtension#A--filemap
于 2012-08-08T14:53:22.577 に答える