2012-02-06 5 views
1

最近、私はすべてのファイルを新しいディレクトリにコピーすることによって、プロジェクトの "ポータブルな"バージョンの作業を開始しました。ポータブルディレクトリは、削除されたものまたはコメントアウトされたものに関してのみ安定ディレクトリとは異なります。何も追加されていません。Mercurial初心者:2つの既存のコードベースを同期できますか?

私は最後に、ソース管理を学ぶことにしました。誰もが開始は単に他の何よりも重要であると言います。私は最終的には分岐に適していて、最終的にはMercurialを選択しました。私はオンラインで見つけたチュートリアルを好きでした(例えばhttp://hginit.comhttp://hgbook.red-bean.com/)。

私は安定したディレクトリのリポジトリを作成し、中央リポジトリ(Dropbox)のクローンを作成しました。私はコミットしています。しかし、今、私は自分の(既存の)ポータブルディレクトリを中央のリポジトリにリンクしたいと思います。安定したコードのバグを修正し、中央のリポジトリにプッシュし、バグ修正を移植可能なコードに引き渡すことができるようにしたいと考えています。

私は携帯用コードで何をすべきか不明です。ポータブルディレクトリに中央リポジトリをクローンすると、ポータブルディレクトリを初めて更新するときに私のポータブルコードがすべて上書きされることはありませんか?

+3

ドロップボックスにレポを保存するように注意してください。それは安全ではありません。 Dropboxはファイルをそれ自身の条件で同期させ、Mercurialは、ハードリンク、ネットワークファイルシステム、およびトランザクションロールバックを考慮に入れた非常に特殊な、よくテストされたロックセマンティクスを持っています。 Mercurialのプッシュ&プルは、ファイルの同期ではなく、あるマシンから別のマシンに変更を加える方法です。 –

+2

Ry4anの発言に注意してください。中央リポジトリを維持するのは非常に危険な場所です。 Mercurialは共有とバージョン管理を行うので、Dropboxはほとんど必要ありません。 –

答えて

1

説明したような作業を行う前に、 "central"リポジトリをポータブルディレクトリに複製する必要があります。しかし、簡単な修正はあなたにポータブルディレクトリをどこか別の場所にコピーして空の新しいフォルダを作成することです。次に、リポジトリをそのディレクトリにクローンします。その後、以前のポータブルディレクトリをコピーしてコピーして、そこにあるファイルを上書きすることができるはずです。これにより、これらの変更をバージョン管理にコミットし、セントラルリポジトリと同期させることができます。このメソッドは動作しません場合は

は、あなたはまだ、中央リポジトリのクローンを作成し、新しいクローン化されたバージョンに手で、既存のポータブル場所にあなたの「保留中」の変更のすべてを行う必要があります。

1

ポータブルバージョンのように聞こえるのは、安定したレポのブランチであるはずです。リポジトリにない既存のバージョンを既に持っているので、これを行うための簡単な方法はaddremoveコマンドを使用することです。

は、私が最初にあなたの安定版ブランチに確認してください最近の変更を行うと、あなたはケースを何のどこかにあなたのレポのバックアップコピーを持っていることを確認しているだろうことはうまくいきません。それから私は.hgディレクトリとその後、私はそのディレクトリにポータブル版をコピーして、hg addremoveを実行しますなど.hgignore.hgsub.hgeol、他の任意のリポジトリの管理ファイルを除いて、あなたの安定したリポジトリのディレクトリからすべてを削除します。 addremoveコマンドは自動的にすべての新しいファイルを追加し、すべての不足しているファイル(この場合は単に削除する必要があります)を削除します。今私はこれを別のブランチとしてhg branch <branch_name>と表示しています。ここで、<branch_name>はポータブルブランチに名前を付けるものです。それではいつものようにhg commitちょうど。

は、今すぐあなたの安定版ブランチ(あなたがそれを名前を変更していない限り、「デフォルト」と呼ばれる)とあなたの新しいポータブル支店を持っています。安定したブランチに変更を加えたら、ポータブルブランチにhg updateを入れて、hg merge defaultを実行します(または、デフォルトのブランチを安定したブランチの名前に置き換えて)。

関連する問題