問題タブ [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.
java - Javaに組み込み可能な分散バージョン管理システム?
理想的には純粋な Java で、寛容なライセンスの下で書かれた (アプリケーション データのバージョン管理された同期可能なストレージを実装するために) Java アプリケーションの組み込みライブラリとして使用できる分散型バージョン管理システム (git や Mercurial など) はありますか?
version-control - ある開発者にとって DVCS は役に立ちますか?
それとも、従来のクライアント/サーバー VCS の方が適切でしょうか? 私は現在 TortoiseSVN を使用していますが、DVCS に興味がありますが、そのようなものをソロで使用するのが良い考えであるかどうかもわかりません。
version-control - ネットワーク化されていない環境に最適なバージョン管理システム?
私は高校のロボット工学チームのプログラミンググループを指導しています。共有/バックアップのためにディレクトリを手動でコピーし、これらを手動でマージするという混乱を避けるために、ソース管理リポジトリを設定したいと思います。ビルド場所には通常ネットワークアクセスがないため、私は慣れていない分散バージョン管理システム(DVCS)にたどり着きました。
最大の要件は次のとおりです。
- WindowsXPおよびVistaで動作します。(絶対に必要)
- 変更はローカルでコミットできます。(すべてのDVCSに当てはまるようです)
- 複数のマシンのリポジトリは、ネットワークにアクセスせずにマージできます。(おそらく、リポジトリをUSBドライブに保存し、ドライブを別のマシンに交換してから、そこからマージすることによって)
また、バージョン管理システムを使用したことがない高校生と一緒に作業しているので、できればグラフィカルUIを使用して、習得と使用が簡単である必要があります。
どのDVCSがこれに最も適しているかに関する提案。
編集:
答えてくれてありがとう。Mercurialはかなり見栄えがしますが、あるディレクトリから別のディレクトリへのリポジトリのマージをサポートしていますか、それともマージするためにローカルネットワークを設定する必要がありますか?
ubuntu - Mercurial 認証の問題を調査して解決するにはどうすればよいですか?
bitbucket を使用したプライベート リポジトリがあります。
Ubuntu で Mercurial Distributed SCM (バージョン 0.9.3) を使用しています。
リポジトリのクローンを作成しようとすると、正しく入力したユーザー名とパスワードの入力を求められます。
結果として私は得る:abort: authorization failed
これは、Windowsから完全に正常に機能します。
バグを送信する前に、明らかな何かを見逃していないことを確認したいだけです。
分散バージョン管理は初めてです。
windows - Git-ブランチ(ウィンドウ)の切り替えとコミットされていない変更
いくつかのgit/DCVSの概念を理解するのに苦労しています。何が起こったのか:
- gitプロジェクトを作成し、SVNリポジトリからインポートしました
- 私はいくつかのコミットをしました
- 何かを実験したかったので、constants-updateというブランチを作成しました
- 定数に切り替えました-ブランチを更新し、いくつかのファイルを移動し、他のファイルを削除し、さらに多くのファイルを追加しました
- 私はこのブランチにコミットしました
- 今、私は自分のマスターブランチに切り替えようとしています
git checkout master
- このエラーが発生しました:エラー:'src / groovy/Constants.groovy'にローカルな変更があります。ブランチを切り替えることはできません。
DCVSについての私の理解は、ファイルをコミットする限り、一部のブランチに他のブランチよりもファイルが多かれ少なかれある場合でも、ブランチを自由に切り替えることができるということです。git commit -a
マスターブランチでコミットして切り替えようとしましたが、同じエラーが発生します。
ちなみに、gitをコミットすると、LFがCRLFに置き換えられることを警告し、末尾の空白についても警告します。コミットした後、を実行するgit status
と、一連のファイルが常にとして表示され #modified ...
ます。
これはgit/ windowsに関連していますか、それとも何が起こるのか正しく理解していませんか?他のブランチでの変更を失うことなく、マスターブランチに切り替えたいだけです。
mercurial - Mercurial で後方マージを取り消す
苦痛で死なずに、極性化された枝へのマージの影響をどのように元に戻すことができますか?
この問題は何ヶ月も私を悩ませてきましたが、ついにあきらめました.
2 つの名前付きブランチを持つ 1 つのリポジトリがあります 。AとB。
A に発生する変更は、必然的に B にも発生します。
B で直接発生する変更は、A で発生してはなりません。
このような構成では、「B」を「A」にマージすると、B へのすべての変更が A で行われたかのように A に表示されるため、リポジトリで悲惨な問題が発生します。
この状況から回復する唯一の「通常の」方法は、マージを「バックアウト」することです。つまり、次のようになります。
後で正しい方向にマージすることを決定するまでは、これはすべて問題なくダンディに見えますが、あらゆる種類の厄介なことが発生し、特にブランチ B で消去/コメントアウトされたコードが突然消去またはコメント解除されます。
これまでのところ、「それをやらせてから、すべての問題を手作業で修正する」以外に、これに対する実用的な解決策はありませんでした。
問題を明確にする画像を次に示します。
【原画消失】
ファイル C & E (または変更 C & E ) は、ブランチ a ではなく、ブランチ b にのみ表示される必要があります。ここのリビジョン A9 (ブランチ a、revno 9) が問題の始まりです。
リビジョン A10 と A11 は、「バックアウト マージ」フェーズと「バックアウト マージ」フェーズです。
また、リビジョン B12 は水銀的であり、ドロップしないように意図された変更を誤って繰り返しドロップしています。
このジレンマは多くのフラストレーションと青煙を引き起こしました。私はそれを終わらせたいと思っています。
ノート
フックまたはポリシーのいずれかを使用して、リバース マージが発生しないようにすることが明らかな答えかもしれません。必然的にそれが起こると仮定して、それが起こったときにそれを解決できるようにします.
詳しく説明する
モデルでは、個別のファイルを使用しました。これらは問題を単純にします。これらは、別の行になる可能性のある任意の変更を表すだけです。
また、怪我に侮辱を加えるために、ブランチ A に実質的な変更があり、「ブランチ A の変更が、変更のように見える (そしてバックアウトされた) ブランチ B の変更と競合する」という問題が残ります。代わりにブランチ A で "
履歴書き換えのトリックについて:
これらすべての遡及ソリューションの問題は次のとおりです。
- 9000 件のコミットがあります。
- したがって、新たにクローニングするには30分かかります
- リポジトリの不良クローンがどこかに1 つでも存在すると、元のリポジトリに再び接触して、再びすべてをぶち壊す可能性があります。
- 誰もがこのリポジトリを既に複製しており、進行中のコミットで数日が経過しました。
- そのようなクローンの 1 つがたまたまライブ サイトであるため、「それを消去してゼロから始める」=「ビッグ ノノ」
(上記の多くは少しばかげていることは認めますが、私の制御の範囲外です)。
実行可能な唯一の解決策は、人々はすべて間違ったことをする可能性があり、そうするであろうこと、そしてこの間違いを「元に戻す」方法があることを前提とするものです。
windows - Windows に最適な GUI フロントエンドを備えた分散型バージョン管理システムは?
私の職場では、CVS をバージョン管理システムとして使用しています。主に Windows を使用しているため、TortoiseCVS と WinCVS は CVS の GUI フロントエンドとして機能します。
分散型 VCS (bzr、hg、git) のいずれかのフロントエンドのようなものはありますか? コマンドラインを使用できることはわかっていますが、それはオプションではありません。
私はすでに Bazaar を試しましたが、TortoiseBzr にはがっかりしました。
mercurial - Webサーバーページに「グラフ」リンクが表示されるようにtortoisehgを設定するにはどうすればよいですか?
Mercurialリポジトリでそれを見ることができます。Mercurialは、リビジョングラフですでにこの機能を備えていると思います。
それを達成するためにtortoisehgをどのように設定する必要がありますか?
私はhgwebのためにこのようなものが欲しいです。
dvcs - リモート従業員の小規模企業向けの DVCS
状況は次のとおりです。私の小さなオフィスでは、モバイルを維持し、時々自宅で仕事をするのが好きなので、中央のファイル サーバーを使用する代わりに、SVN リポジトリにすべてのオフィス ドキュメントがあり、各人が自分のラップトップでチェックアウトを行っています。 . チェックアウトの重量は約 3 GB で、リビジョンを含むレポは約 6 GB です。これはすべてうまくいっています。
問題は、まもなく小さなオフィスがなくなることです。5 人の従業員全員がリモートで作業することになります。専用サーバーを購入し、そこから SVN リポジトリを実行することを検討していましたが、2 人の作業員が本当にリモートで、月 3GB の制限でワイヤレスの「ブロードバンド」を使用することを除いて、いくつかの大規模な更新が行われるのではないかと心配しています。完了するのに丸一日かかることは言うまでもありません。
Stack Overflow に関するいくつかの質問を読むと、多くの状況で git または mercurial が間違いなく最適であると考えている分散型 VCS 愛好家のかなりのコミュニティがあるようです。すべての従業員が少なくとも 2 週間に 1 回は顔を合わせて会うことができる (したがって、高速 LAN 上にいる) ことを考えると、DVCS が機能するかどうか疑問に思っています。
svn - git-svn を使用して svn:external を最新の状態に保つにはどうすればよいですか?
リポジトリを SVN リポジトリとして扱うと、次のようになります。
それを Git リポジトリとして扱うと、次のようになります。
baz を別の場所にあるローカル マシンに複製して、シンボリック リンクを追加することはできますが、それは単なるハックです。git svn rebase
他のすべてを更新するときに、それらの変更を自動的に取り込む方法はありsvn up
ますか?