1

私は現在、sourcetree を使用して管理するプライベート Git リポジトリでホストされているプロジェクトを持っています。最近、このプロジェクトで友人グループと協力することにしました。しかし、彼らは Git よりも Mercurial & SVN を好みます。私は、自分の Git リポジトリを維持しながら共同作業できるように、私のプロジェクトで作成された別の Mercurial & SVN リポジトリを用意したいと考えています。Sourcetree またはその他の方法で次のことができるかどうか疑問に思っていました。

  1. 私のプロジェクトを 3 つのリポジトリ (Git /Mercurial / SVN) すべてで同時に追跡する作業システムに 1 つのプロジェクト フォルダーがありますか?

  2. 1. 可能であれば、いずれかのバージョン管理システムから選択的に変更をプルし、選択的にそれらに変更をプッシュすることはできますか?

Mac で Sourcetree を使用しています。github と bitbucket の別々のリポジトリに対してこれを行っているユーザーの記事に出くわしましたが、ここで共有するリンクを思い出すことができません。コードの管理を容易にするために、これを行う良い方法を見つけたいと思っています。そのような質問がここに属していない場合は、ご容赦ください。mod はこれを閉じる可能性があります。どんな助けでも大歓迎です:)

4

2 に答える 2

1

単一の作業ディレクトリに 2 つまたは 3 つの異なる VCS を混在させないことを強くお勧めします。異なるエンジンの透過的な一体性を維持するための追加の頭痛の種です。

無料の作業ディレクトリ (すべて - Git 中心) は、より管理しやすく、混沌としたソリューションではありません。

  • 「外部」リポジトリごとに単一のリモートを追加するだけです-「Mercurial-source」および「SVN-source」。
  • 「その他」のリポジトリをプルし、「所有」にプッシュします

SVN リンクは git-svn で、Mercurial リンクは (Git 側から) 「Mercurial ブリッジ」でサポートできます。

于 2013-01-24T08:22:18.313 に答える
0

実際、gitリポジトリを直接使用することで、hgはhg-git拡張機能を使用して細かくアクセスできます。しかし、2つのリポジトリを維持することを意図しているのであれば、それも実現可能だと思います。

実際、フォルダー内には、mercurial用の.hgフォルダー、git用の.gitフォルダーを含めることができます。実際、hgとgitは作業ディレクトリとリポジトリを区別するため、このフォルダは異なるリポジトリを保持できます。

2番目の質問では、hgとgitの両方にいくつかのフックを設定し、いずれかのシステムでプッシュが発生したときに、hgのhg-git拡張機能を介してそれらを通信させる必要があると思います。私の知る限り、この拡張機能はうまく機能します。

しかし、SVNの場合、状況は異なります。hgとgitの両方にsvn拡張機能(hgsubversionとgit-svn。ここでの拡張機能は一般的な考え方であり、hgのような拡張機能に固有ではありません)がありますが、DVCSシステムは簡単に分岐するため、svnへのマッピングは少し複雑になります。

したがって、1つのフォルダー内のhgおよびgitリポジトリーは、hg-git拡張機能とフックを介して実行可能であり、svnについてはよくわかりません。

于 2013-01-24T02:08:53.747 に答える