問題タブ [dvcs]

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.

0 投票する
2 に答える
1196 参照

git - 新しいプロジェクトの git repo レイアウトの提案が必要

私は、git リポジトリに保持する予定の新しいプロジェクトに取り組んでいます。CVSでこれを行う方法は知っていますが、gitには少し慣れていないため、いくつかの提案を使用できます。

このプロジェクトは、互いに通信し、ペアとしてパッケージ化された 2 つの組み込みデバイス用のファームウェアです。両方のデバイスに、コードの生産バリアントと製造バリアントがあります。両方のデバイス プロジェクトには、ハードウェアのさまざまなビット (LED の点滅など)、またはハードウェア関連のコード (ドライバーなど) を実行するためのサブ/兄弟プロジェクトが多数あります。ほとんどのコードはすべて共通です。

また、検証によって一方の変更が他方に送り返されるのを防ぐために、本番用と製造用のファームウェアを互いに独立して改訂できるようにする必要があります。

以下は私の既存のディレクトリレイアウトです。それは有機的に成長し、私が git を使用することになる前に大部分が敷設されました。より良い方法があれば、全体を再編成することを嫌いません。

  • プロジェクトルート
    • 含む
    • ソース
    • デバイスA
      • 製造
      • 製造業
      • まばたき
      • ボタン
      • ...
    • デバイスB
      • 製造
      • 製造業
      • まばたき
      • ボタン
      • ...

私はブランチにプロダクションとマニュファクチャリングを配置したいと思っていますが、通常、特定の日に両方の作業を行っており、git では一度に 1 つのブランチしかアクティブにできません。そして、まばたきやボタンなどは実際には製造や生産ではないため、どうすればよいかわかりません。提案?

説明:

  • コードの製造バージョンは、製造ラインでハードウェアをテストするために使用されます。製品コードは、ハードウェアがテスト ステーションを通過した後に読み込まれ、顧客に出荷されます。この 2 つは少なくとも 75% は似ていますが、製造ラインを停止することなく生産コードのバグを修正できるように、独立している必要があります。

  • DeviceA と DeviceB はペアであるため、両方のコード セットがタグ付けされ、同じリリース バージョン番号で同時にリリースされます。

0 投票する
11 に答える
46919 参照

git - Mercurial リポジトリとの Git の相互運用性

MacでGITを使用しています。十分に言った。私にはツールがあり、経験があります。そしてこれからも使い続けたいです。ここには戦争はありません...

問題は常に相互運用性にあります。ほとんどの人は SVN を使用していますが、これは私にとって素晴らしいことです。Git SVN はすぐに使用でき、飾り気のないソリューションです。人々は引き続き SVN を快適に使用でき、ワークフローもツールも失うことはありません。

さて... Mercurial と一緒に来る人もいます。彼らには問題ありません。彼らには理由があります。しかし、すぐに使用できる GIT HG が見つかりません。HG に切り替えたくはありませんが、HG のリポジトリと相互運用する必要があります。

これに対する簡単な解決策を知っている人はいますか?

0 投票する
1 に答える
7716 参照

mercurial - 自分で複数のユーザー用に Mercurial リポジトリをホストするにはどうすればよいですか?

git、Mercurial などのホスティング サービスは多数あります。保持したいデータの一部は機密性が高く、オフサイトに移動できないため、独自のホスティング サービスを使用する必要があります。

サーバー上で Mercurial リポジトリをホストして、多くの人が変更をプルしたり、自分の作業をプッシュしたりできるようにする必要があります。ある種のパスワード保護が必要であり、ssh を使用することもできます。ただし、可能であれば、HTTP(S) を転送プロトコル (Google Code 風) として使用したいと思います。

誰かがこれを行う方法の説明を教えてもらえますか? これまでのところ、シングルユーザー リポジトリのホスティングとホスティング サービスに関する記述しか見つかりませんでしたが、マルチユーザー ホスティングを自分で行うことについては何も見つかりませんでした。

0 投票する
6 に答える
20015 参照

version-control - 名前付きブランチと複数のリポジトリ

現在、比較的大規模なコードベースでSubversionを使用しています。各リリースには独自のブランチがあり、修正はトランクに対して実行され、を使用してリリースブランチに移行されます。svnmerge.py

ソース管理を改善する時が来たと思います。私はしばらくの間Mercurialをいじっています。

Mercurialを使用してこのようなリリース構造を管理することについては、2つの学校があるようです。各リリースは独自のリポジトリを取得し、リリースブランチに対して修正が行われ、メインブランチ(およびその他の新しいリリースブランチ)にプッシュされるか、単一のリポジトリ内の名前付きブランチ(または複数の一致するコピー)を使用します。

どちらの場合でも、リリースブランチに含めるために変更をチェリーピックするための移植のようなものを使用しているようです。

お願いします。各アプローチの相対的なメリットは何ですか?

0 投票する
3 に答える
863 参照

git - 剪定されたMercurialブランチへの更新のプッシュ

私は2つの関連するリポジトリを持っています。1つはリークしてはならない多数の機密ファイルを含むマスターで、もう1つは機密ファイルとディレクトリを除外するために--filemapを使用してhgconvertで作成された「public」バージョンです。

機密ファイルに影響を与えないマスターへのさらなる更新をスレーブにプッシュ可能にし、スレーブへの更新をマスターがプル可能にしたいと思います。現在、これは発生しません。これらは「無関係な」リポジトリと見なされるためです。

これがGitで可能であり、Mercurialでは不可能な場合、移行は可能ですが、Windowsマシンで一部の開発が行われるため、厄介なことになります。スレーブはまだアクティブな外部使用を確認していないため、必要に応じて、スレーブを削除して別の方法で再作成することができます。どうしても必要な場合は、マスターを完全にダンプしてスレーブから再クローンを作成し、機密性の高い部分をすべて完全にバージョン管理しないままにすることも可能ですが、これらのファイルの一部があるため、これを行う必要はありません。変化しているので、それらの変化を追跡したいと思います。

誰か良いアイデアはありますか?

更新: Gitのドキュメントを調べてきました-「これらを除くすべてのファイルをプッシュする」コマンドは、Gitステージング領域を使用して簡単に実装できますか?

更新2:これは私には役立ちませんが、同様の問題を抱えている人に役立つ可能性があります:hg convert --filemap繰り返し使用でき、マスターへの更新のみを追跡しますが、これは、宛先リポジトリがファイルシステムを介して書き込まれ、勝った場合にのみ機能します有線で動作しません。もちろん、それは反対方向にも役立ちません。

0 投票する
2 に答える
466 参照

mercurial - DVCS へのローカル ミラーリングを有効にするために、クライアント レベルで Starteam のキーワード展開を抑制するにはどうすればよいですか?

企業の Starteam CM サーバーをローカル分散バージョン管理システム (Mercurial) でミラーリングしようとしています。チェックアウト機能での Starteam のキーワード拡張により、多くの変更が表示されるという問題が発生しています。たとえば、サーバーは $History を各チェックインのコメントやその他のメタデータのログに展開するように設定されています。これらは、マージしようとすると、厄介な競合を引き起こすことがよくあります。

キーワードを手動で「展開解除」することはできますが、コードベースが非常に大きく、これには法外な時間がかかります。

0 投票する
2 に答える
4604 参照

git - レガシ コード ベースを cvs から分散リポジトリ (git や mercurial など) に転送します。初期リポジトリ設計に必要な提案

導入と背景

私たちはソース管理システムを変更する過程にあり、現在 git と mercurial を評価しています。総コード ベースは約 600 万行のコードなので、大規模でもなく、それほど小さくもありません。

まず、現在のリポジトリの設計がどのように見えるかについて、非常に簡単な紹介から始めましょう。

完全なコード ベース用の 1 つのベース フォルダーがあり、そのレベルの下には、いくつかの異なるコンテキストで使用されるすべての種類のモジュールがあります。たとえば、「dllproject1」と「dllproject2」は完全に別のプロジェクトと見なすことができます。

私たちが開発しているソフトウェアは、お客様のさまざまなニーズに合わせて無限にカスタマイズできるコンフィギュレーターと呼ばれるものです。合計で、おそらく 50 の異なるバージョンがあります。ただし、1 つの共通点があります。それらはすべて、いくつかの必須モジュール (mandatory_module1 ..) を共有しています。これらのフォルダーには、基本的にカーネル/コア コードと共通言語リソースなどが含まれます。すべてのカスタマイズは、他のモジュール (module1 ..) 間の任意の組み合わせにすることができます。

現在 cvs を使用しているため、CVSROOT/modules ファイルにエイリアスを追加しました。それらは次のようになります。

したがって、誰かが project_x で作業することを決定した場合、必要なモジュールを次の方法ですばやくチェックアウトできます。

質問

直観的には、ベース フォルダーを単一のリポジトリとして持つのは間違っていると感じます。プログラマーとして、作業中の現在のプロジェクトに必要な正確なコード サブセットをチェックアウトできるはずです。これについてどう思いますか?

一方、これらの各モジュールを別々のリポジトリに置く方が適切だと感じます。しかし、これにより、プログラマーが必要なモジュールをチェックアウトすることが難しくなります。単一のコマンドでこれを実行できるはずです。だから私の質問は: git/mercurial でエイリアスを定義する同様の方法はありますか?

その他の質問、提案、ポインタは大歓迎です!

PS。同様の質問を検索しましたが、私の状況に 100% 当てはまるものはありませんでした。

0 投票する
5 に答える
3281 参照

version-control - Mercurialで「bzr uncommit」と同等ですか?

uncommitBazaar には、最後のコミットを単純に元に戻す素晴らしいコマンドがあります。Mercurial に相当するものはありますか?

編集: Bazaar の uncommit コマンドはファイルを変更しません – 最後のコミットと関連データを削除します (たとえば、コミット メッセージにタイプミスがある、または追加されるべきファイルが追加されていないことに遅すぎることに気付いた場合に役立ちます) .

例えば:

0 投票する
1 に答える
348 参照

.net - DVCS(私の場合はmercurial)をどのように使用して、さまざまなバージョンの.NET Framework用に開発しますか?

cms(asp.net Webフォームで実行)用の新しい管理ダッシュボードを作成しています。古いサーバーの中には、さまざまな理由で.NET 2.0しか処理できないものがあるため、ラムダ式などを使用するコードを書き直す必要があります。

Mercurialのようなdvcを使用して、これら2つのバージョンを同時に開発するにはどうすればよいでしょうか。

私の現在のコードベースとMercurialリポジトリは、.NET3.5を対象としています。私はMercurialに比較的慣れていないので、コードベースを分岐する必要があると思いますか?

ベストプラクティスやチュートリアルはありますか?

0 投票する
6 に答える
20999 参照

mercurial - Mercurialのリポジトリのサブフォルダのクローンを作成するにはどうすればよいですか?

いくつかの関連プロジェクトを含むMercurialリポジトリがあります。これらのプロジェクトの1つだけを分岐して、他の場所で作業したいと思います。

リポジトリの一部としてクローンを作成することは可能ですか?それはこれを達成するための正しい方法ですか?