問題タブ [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.
svn - バージョン管理されているディレクトリをコピーする
バージョン管理下にあるディレクトリをコピーして、両方のコピーで作業を開始してもよいかどうか知りたいです。
VCSごとに異なる可能性があることは知っていますが、異なるケースに興味があるため、意図的にVCSを指定しません。
私は最近、SVNでそれを行うことについて同僚と話していました。大丈夫だと思いますが、SVNが作業コピーに正確に何を格納しているかわからないため、まだ100%確信はありません。
ただし、DVCSの世界について話すと、すべての作業コピーはそれ自体がリポジトリであるため、状況はさらに不明確になる可能性があります。今bzrでこれを行うことに直面しているので、私は質問をすることにしました。
後で編集:
なぜ私がそうしたいのかと尋ねる人もいました。これが全体の話です:
SVNの場合、不在のためにSVNサーバーへの接続が非常に遅いため、私と同僚はソースを1回だけチェックして、ローカルコピーを作成することにしました。それは私たちがやったことであり、それはうまくいきました、しかし私はそれがうまくいくことが保証されているのか、それともちょうど起こったのか疑問に思っています。
bzrの場合、「メイン」リポジトリを別のサーバーに移動することを計画しています。そこで、そこにコピーして、メインレポを検討し始めることを考えていました。でも、一番安全なのはクローンを作ることだと思います。
version-control - 1000 人以上の開発者組織にどのバージョン管理システムを使用しますか? なんで?
そこには多くのSCMシステムがあります。開いているもの、閉じているもの、無料のもの、かなり高価なものがあります。いくつかのサイト (非常に遅いリンクの背後にあるもの) を持つ 3000 以上の開発者組織に使用するのはどれ(1 つだけ選択してください) ですか? あなたが選んだものを選んだ理由を説明してください。(「~だから」だけでなく、理由も教えてください。)
version-control - 大きなファイルを管理できる分散型 VCS はありますか?
利用可能な RAM よりも大きなファイルを処理できる分散バージョン管理システム (git、bazaar、mercurial、darcs など) はありますか?
大規模なバイナリ ファイル (つまり、データセット、ソース ビデオ/画像、アーカイブ) をコミットできるようにする必要がありますが、ファイルの変更時にコミットして更新できるようにするだけで、それらを比較できる必要はありません。
私がこれを最後に見たのは約 1 年前ですが、明らかな候補はどれもこれを許可していませんでした。これらはすべて、速度のためにメモリ内で差分を取るように設計されているためです。これにより、大きなファイルのコードとその他のもの (「アセット管理」ソフトウェアまたは単に rsync とスクリプト) を管理するための VCS が残りました。これは、2 つのディレクトリ構造が重なっているとかなり見苦しくなります。
git - git リポジトリ コードが安全であることを確認するにはどうすればよいですか?
私たちの組織が Subversion のような中央サーバーの VCS から git のような分散型 VCS に切り替える場合、すべてのコードがハードウェア障害から安全であることを確認するにはどうすればよいですか?
中央サーバーの VCS では、毎日リポジトリをバックアップするだけで済みます。DVCS を使用していた場合、開発者のすべてのマシンに大量のコード ブランチが存在し、そのハードウェアに障害が発生した場合 (または開発者がラップトップを紛失したり盗まれたりした場合)、バックアップはありません。 .
「開発者にブランチをサーバーにプッシュさせる」ことは良いオプションだとは思わないことに注意してください。これは面倒であり、開発者はそれを行わないことになります。
この問題を回避する一般的な方法はありますか?
明確化:
ネイティブ中央サーバー VCS では、開発者の最新の変更を除いて、すべてが中央サーバー上にある必要があります。したがって、たとえば、開発者がバグ修正を行うために分岐することを決定した場合、その分岐は中央サーバー上にあり、すぐにバックアップできます。
DVCS を使用している場合、開発者はローカル ブランチ (実際には多くのローカル ブランチ) を作成できます。これらのブランチはどれも中央サーバー上になく、開発者が「そうそう、それを中央サーバーにプッシュする必要がある」と考えるまでバックアップに使用できません。
したがって、私が見ている違い (間違っていたら訂正してください!): DVCS を使用している場合、半分実装された機能とバグ修正はおそらく中央サーバーでバックアップできませんが、通常の VCS では使用できません。そのコードを安全に保つにはどうすればよいですか?
version-control - 集中バージョン管理システムと分散バージョン管理システムの比較
集中バージョン管理システムと分散バージョン管理システム (DVCS)を使用する利点と欠点は何ですか? DVCS で何か問題に遭遇したことがありますか? また、これらの問題をどのように防止しましたか? ディスカッション ツールにとらわれず、炎上を最小限に抑えます。
どの DVCS ツールが利用できるのか知りたい方のために、最もよく知られているフリー/オープン ソースの DVCS のリストを以下に示します。
- Linux Kernel および Ruby on Rails で使用されるGit (C で記述) 。
- Mozilla および OpenJDK で使用されるMercurial (Python で作成) 。
- Ubuntu 開発者が使用するBazaar (Python で作成) 。
- Darcs (Haskell で記述)。
git - git バージョン管理システムを使用したバイナリ ファイルのロック
SVN からの切り替えを期待して、1 年半の間、私は git コミュニティに注目してきました。私を妨げている特定の問題の 1 つは、バイナリ ファイルをロックできないことです。過去 1 年間、この問題に関する進展はまだ見られませんでした。ファイルのロックが分散ソース管理の基本原則に反することは理解していますが、バイナリ ファイルの競合の可能性がある場合に、Web 開発会社が git を利用してソース コードとイメージ ファイルの変更を追跡する方法がわかりません。
ロックの効果を得るには、「中央」リポジトリを特定する必要があります。git の分散性に関係なく、ほとんどの企業はソフトウェア プロジェクト用の「中央」リポジトリを持っています。指定されたアドレスで管理 git リポジトリからのロックが必要であることをファイルにマークできるはずです。おそらく、git はファイルではなくファイルの内容を追跡するため、これは難しくなっていますか?
変更する前にロックする必要がある git およびバイナリ ファイルを扱った経験のある人はいますか?
注: Source Gear の新しいオープン ソース分散バージョン管理プロジェクトである Veracity は、ロックを目標の 1 つとしているようです。
mercurial - ホステッド オンデマンド バージョンの FogBugz と bitbucket リポジトリを統合するにはどうすればよいですか?
私は、FogBugz のオンデマンド (ホスト) バージョンを使用しています。ソース管理に Mercurial の使用を開始したいと考えています。FogBugz と BitBucket リポジトリを統合したいと考えています。少しやってみましたが、うまくいきませんでした。
FogBugz では、Mercurial クライアントを fogbugz.py python スクリプトに接続する必要があります。TortoiseHg には、手順で参照されている hgext ディレクトリがないようです。
それで、誰かが同様のことを成功させましたか?
git - 分散バージョン管理を使用する場合のビルド シーケンス
現在、バージョン管理には Perforce を使用しています。ビルドを参照するために使用できる厳密に増加する変更番号の便利な機能があります。たとえば、「ビルドが少なくとも 44902 の場合、バグ修正を取得できます」。
分散システム (おそらく git) の使用に切り替えて、ブランチや在宅勤務を容易にしたいと考えています。(どちらもPerforceで完全に可能ですが、gitワークフローにはいくつかの利点があります。)したがって、「トリビュタリ開発」は配布され、共通のリビジョンシーケンスを参照しませんが、すべての変更が行われるマスターgitリポジトリを維持します.ビルドが作成される前にフィードする必要があります。
厳密に増加するビルド ID を保持する最良の方法は何ですか? 私が考えることができる最も簡単な方法は、マスターリポジトリが更新されるたびに起動し、新しいツリーオブジェクト(またはコミットオブジェクト?のハッシュ)を登録する、ある種のポストコミットフックを用意することです。 git) を、ID を配布する集中型データベースと組み合わせて使用します。(「データベース」と言いますが、おそらく git タグを使用して、次に利用可能なタグ番号か何かを探すだけです。つまり、「データベース」は実際には .git/refs/tags/build-id/ になります。 )
これは実行可能ですが、これを達成するためのより簡単な、または既に実装されている、または標準/「ベストプラクティス」の方法があるかどうか疑問に思っています。
windows - Git は Windows で動作しますか?
私は常に Linux で作業していますが、Windows については何も知らず、Windows ボックスさえ持っていません。現在、Git は Windows で動作していますか? それとも、それを使用して Windows 仲間に問題を起こしていますか?
dvcs - 人々は化石 DVCS についてどう思いますか?
フォッシルhttp://www.fossil-scm.org
最近これを見つけて、ホーム プロジェクトに使い始めました。他の人がこの VCS についてどう思うか聞きたいです。
私の心に欠けているのは、IDE サポートです。それが来ることを願っていますが、私はコマンドラインを問題なく使用しています。
化石についての私の好きな点: 組み込みの Web サーバー wiki とバグ追跡を備えた単一の実行可能ファイル。リポジトリは 1 つの SQLite ( http://www.sqlite.org ) データベース ファイルであり、簡単にバックアップできます。また、fossil を実行してリポジトリをサム ドライブに保存できることも気に入っています。これは、私のソフトウェア開発が完全に移植可能になったことを意味します。
あなたの考えを教えてください....