問題タブ [mercurial-subrepos]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mercurial - 異なるサブリポジトリプロジェクトからの一部のパッケージのみを含むMercurialリポジトリを設定するにはどうすればよいですか?
http://myrepoという遠いリポジトリがあります
また、に3つの異なるパッケージ(それぞれに1つ)が格納された3つのプロジェクトがありますD:/Projects/Project[ABC]/src/pack[ABC]
。
D:/Mercurial
パッケージをサブリポジトリとして参照するローカルリポジトリを作成したいと思いますpack[ABC]
。これは、離れたリポジトリにプッシュされます。
最後に、パッケージを離れたリポジトリに保存して、http:// myrepo / pack [ABC]を読んでもらいたいので、で行われた変更を反映する必要がありますD:/Projects/Project[ABC]/src/pack[ABC]
。
サブリポジトリを離れた場所にプッシュすることはできません。そのようなものを設定する方法は?
mercurial - 「hg extdiff」にサブリポジトリを含める方法はありますか?
「hg diff -S」のようなことを実行できるように Mercurial を構成したいと思いますが、外部の diff ツール (具体的には kdiff3) を使用します。これを行う論理的な方法は次のようになります
ただし、extdiff 拡張機能は、他の多くの mercurial コマンドがサブリポジトリを含めるために使用する「-S」オプションをサポートしていないため、これは機能しません。回避策はありますか?
version-control - Mercurial でサブリポジトリをネストできますか?
サブリポジトリを使用して Mercurial でプロジェクトをセットアップするのに問題があります。
ゴール:
私は次のように構造を設定したい:
したがって、ビルド、A、および B の 3 つのリポジトリがあります。B は A 内にネストされ、A はルート ビルド リポジトリ内にネストされます。ビルド リポジトリは依存関係の追跡に使用され、サブリポジトリ A はメイン ソース ファイルの追跡に使用され、サブリポジトリ B (およびその他) はモジュール/プラグイン開発の追跡に使用されます。
問題/質問
Subrepo_A のパスとソースを .hgsub ファイルに追加してビルド リポジトリにコミットするだけで、最初のビルド リポジトリとネストされた Subrepo_A を問題なくセットアップできます。ただし、subrepo_B パス/ソースをビルド リポジトリの .hgsub に追加してコミットしようとすると、次のエラー メッセージが表示されます。
中止: パス 'Subrepo_A/Modules/Sebrepo_B' は、ネストされたリポジトリ 'Subrepo_A' 内にあります
Mercurial は、既にネストされたリポジトリ内にネストされたリポジトリを好まないようです。これは本当ですか、それとも何か不足していますか? ビルド/依存関係を管理する方法に関するより良いアイデアはありますか?
mercurial - 中央サーバーでサブリポジトリの同期を維持する
サブリポジトリと、サブリポジトリをチームのワークフローで機能させる方法を理解していると考え続けていますが、基本的なワークフローを実装しようとするたびに、何かが正しく機能しないため、明らかにわかりません。
私はサブレポについてオンラインで読むことができるものはほとんどすべて読んでおり、人々が投稿するすべての些細な例に従いますが、もっと複雑なことをしようとすると. あるいは、私はそれを完全によく理解しているのかもしれませんが、私がやろうとしていることはうまく機能するものではありません.
邪魔にならない基本を取得しましょう。リモートの「祝福された」リポジトリのコレクションがあるとしましょう。
そこで、/ProjA
toC:\ProjA
と clone /LibA
toC:\ProjA\LibA
と/LibB
toのクローンを作成しC:\ProjA\LibB
ます。.hgsub
ファイルを作成します
私はすべてをコミットします。その後、押すことができProjA
、すべてが順調です。
だから今、私のチームの誰かがクローン/PrjoA
に行くことができ、サブレポとしてもC:\dev\ProjA
ダウンLibA
します。LibB
この人は、私と同じように「祝福されたレポ」から簡単にプッシュ/プルできます。これまでのところとても良い。
今、私は言います: OK、ProjA チーム、祝福されたレポへのプッシュをやめてください。今から、次の場所にある ProjA dev および ProjA QA リモート リポジトリに変更をプッシュしてください。
ここで停止します。にプッシュしようとしても、 をプッシュするだけhttp://acme.com/Dev/ProjA
で、 の目的の場所ではなく、祝福されたリポジトリの元の場所にプッシュされます。/ProjA
/ProjA/LibA
/ProjA/LibB
http://acme.com/Dev/ProjA
.hgsub
これで、ファイルを としてセットアップできましLibA = ../LibA
た。これは最初は機能しますがProjA
、祝福されたレポから のクローンを作成する場合、LibA
またはを取得できません。これLibB
は、ローカルのレポが見つかることを期待してLibA
おり、クローンLibB
しているレポの兄弟であるためProjA
だと思います。私が意味するのは、にクローンを作成している場合http://acme.com/BlessedRepos/ProjA
、C:\Test\ProjA
既存のリポジトリが にあると予想されるため、失敗するということC:\Test\LibA
です。
hgsub を としてセットアップすることもできますLibA = LibA
。LibA
ただし、祝福されたスペースにネストされていないため、祝福されたリポジトリにプッシュしようとすると、これを行うと失敗しますProjA
。私はそれらを作成することができましたが、私は に戻ることは決してありませhttp://acme.com/BlessedRepos/LibA
んhttp://acme.com/BlessedRepos/ProjA/LibA
。
.hgsub
ファイル内のすべての値を「祝福された」リモートの場所から「dev」および「QA」の場所に変更するスクリプトを実行する場合、最初の方法が機能することは間違いありません。しかし、これは理想的とは言えません。
そう。このことを本当に理解している人がいる場合は、私がどこで間違ったのか、またはサブレポを使用して元のワークフローをどのように達成できるかを説明してもらえますか、それともそうではないものを求めていることを確認してくださいサブレポに最適です。状況を理解するのに役立つ場合、おそらく 15 ~ 20 の「製品/ソリューション」と 50 の「共有」プロジェクトのようなものがあります。15 ~ 20 個の製品のいずれでも、ソリューション内の 50 個の共有プロジェクトのうち N 個を利用できます。
mercurial-subrepos - Mercurial: 既存のフォルダーをサブリポジトリに変換する
次のような Mercurial リポジトリがあります。
... SWCommon は、他の 2 つのプロジェクトに共通のライブラリです。ここで、SWCommon を SWClients のサブリポジトリに変換したいので、こちらとこちらの手順に従いました。ただし、最初のリンクの例とは対照的に、サブリポジトリには、フォルダーの最初の名前と同じ名前を付けたいと考えています。詳細には、これは私がやったことです:
次のようにファイル map.txt を作成します。
次のようにファイル .hgsub を作成します
次に実行します
それで
...確かにそうですが、なぜそれが中絶の理由になるのでしょうか? もう 1 つの奇妙な点は、上記の最後の 'mv' を実行せずに 'hg status' を実行すると、予想どおり SWCommon に多くの 'missing' ファイルが作成されることです。リンクの例はこれまでのところ成功しておらず、基本的に上記の hg update で停止していますか? 実際にどのように機能させるのですか?
mercurial - Mercurial 共通/ローカル ファイル
私は数年前から hg ユーザーであり、それについて満足しています!
今までやったことのないプロジェクトを始めなければなりません。アイデアは、バッチ モードと GUI を備えたソフトウェアを開発することです。
そのため、バッチ モードと GUI モードの両方に共通のソースがありますが、それぞれに特定のソースも含まれます。そして、基本的には、同僚が GUI バージョンのクローンを作成し、変更をコミットできるようにしたいと考えています。次に、共通ファイルの変更をバッチ バージョンとマージできるようにしたいと考えています。
どうすれば対処できますか?
このトピックについて少し読んでいるので、助けていただければ幸いです!!
ありがとうございました。ビヌア
mercurial - Mercurial(hg)更新エラー、中止:そのようなファイルまたはディレクトリはありません
自分のマシンで水銀リポジトリを更新できません。更新を行うと、次のエラーが発生しますhg up --traceback
。
実行してから実行しようとしましrm -rf myrepo
たhg clone ssh://hg@bitbucket.org/myrepo
が、そのコマンドはリポジトリを正しくダウンロードしますが、hgがリポジトリをブランチのデフォルトに更新しようとすると同じエラーが発生します。具体的には次のようになります。
トラックバックを使用すると、以前と同様のエラーが発生します。運が悪かったので、システムにMercurialを再インストールしようとしました。
何が問題なのか指摘していただけませんか。リポジトリヘッドは問題ないようです(他のマシンでも可能です)clone
。また、システムで他のhgリポジトリを実行できます。これはサブリポジトリと関係がありますか?トラックバックはそれを示唆しています。update
clone
update
私のシステムの詳細:32ビットUbuntu 11.10、Mercurialバージョン1.9.1を実行しています。
mercurial - サブリポジトリにリビジョンがないことを示しているために更新に失敗するMercurialリポジトリを修正するにはどうすればよいですか?
サブリポジトリとリビジョンのペアがもう存在しない古いブランチに更新しようとすると、Mercurialリポジトリがスタックします。
Mercurialにリビジョンまたはブランチに更新するように指示するが、サブリポジトリの更新を試みないようにする方法はありますか?
mercurial - Mercurial Subreposは、クローン作成プロセス中に作成されません
'subrepo'というサブフォルダーを含むリポジトリーを作成しました。次に、次の内容の.hgsubファイルを作成しました。
BitBucketに移動してソースを表示すると、「subrepo」フォルダーが表示されます。このフォルダーをクリックすると、リンクされたサブリポジトリに移動します。また、作成したルートレベルのindex.phpファイルと一緒に.hgsubファイルも表示されます。
私の問題は、メインリポジトリのソースを複製またはダウンロードすると、index.phpファイルのみが取得され、リンクされたサブリポジトリのコンテンツを含む.hgsubファイルまたはサブフォルダは取得されないことです。私の理解では、完全なコンテンツを取得する必要があります。何が間違っているのでしょうか?
mercurial - 水銀座薬
座薬について質問です。私たちのプロジェクトは次のように設定されています。
dependencyA
サブリポジトリです。これは次のように作成されました。
- cdプロジェクトA
- mkdir 依存関係 A
- cd依存性A
- hg 初期化
- hg プル ssh://hg@somerandomiphere/dependencyA
- CD ..
- エコー依存性 A = ssh://hg@somerandomiphere/dependencyA > .hgsub
- hg 追加
- hg コミット
- hgプッシュ
suprepository に変更を加えた場合は、それらをコミットしてメイン プロジェクトからプッシュします。どちらも再帰的であるため、サーバーにプッシュされます。今、同僚がサーバーから変更を取得したいと考えています。しかし、メインプロジェクトでは何も変更されていないため、機能しません。しかし、メイン プロジェクトで何かを変更してサーバーにプッシュすると、hg pull
彼が最新の変更セットを取得すると、hg update
サブリポジトリも更新されます。これは予期される動作です。
ここで私の質問は、変更をプルする方法があるかどうかですが、それの新しいクローンを作成せずにサブリポジトリに対してのみ、またはそれを行うための最良の方法は何でしょうか.